как я могу использовать как заявление в C #

0

Я добавляю параметр

qry = qry.Replace("{criteria}", "info.abc LIKE '%?val%'");
Команда

не работает, если я удалил ' ' из команды, а затем дал ошибку, как я могу выполнить поиск в таблице в С#

  • 6
    Разместите весь запрос.
  • 4
    Показать оригинальный шаблон запроса.
Показать ещё 1 комментарий
Теги:
tsql

2 ответа

1
Лучший ответ

В соответствии с синтаксисом TSQL - как вам нужно поставить значение поиска между ''

Пример:

WHERE title LIKE '%computer%'

синтаксис

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]
-3

Еще один способ сделать это более явным - и, на мой взгляд, более читаемым, потому что он избегает чересстрочных частей синтаксиса SQL:

SqlDataReader r = new SqlCommand("SELECT * FROM the_table").ExecuteReader();
object[] values = new object[5000];
r.GetValues(values);
foreach (string value in values)
    if (value.Length > 4)
        if (value.Contains("val"))
            new SqlCommand("UPDATE the_table SET value = 'newValue' WHERE "+
                           "value = '"+value+"'").ExecuteNonQuery();
  • 0
    Это решение имеет риск внедрения SQL (см. En.wikipedia.org/wiki/SQL_injection ). Было бы лучше использовать параметризованные запросы. Кроме того, это может сильно повлиять на производительность (необходимо выполнить столько запросов, сколько имеется записей в "the_table")
  • 0
    @ckarras: Спасибо, не знал об атаке SQL-инъекций. Производительность не должна беспокоить, хотя. Сосредоточьтесь сначала на правильном подходе, а затем на быстром, если вам нужно.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню