В сообщении говорится, что нет столбца с именем «Сагар» в таблице. Есть ли такая колонна? Все будет проще, если вы предложите нам схему таблиц вместо того, чтобы нас угадать из сообщения об ошибке.
Это не представляется возможным параметризацию имена столбцов, используя SqlParameter
в C#. Это обсуждалось здесь несколько раз.
Что происходит с запросом, как это делает Vidhya Sagar Reddy
, является следующим. Он предполагает, что следующий запрос
Select * from Employee Where @field = 'Sagar'
заменяется этим запросом при установке "Name"
в качестве значения для параметра @field
:
Select * from Employee Where Name = 'Sagar'
Это, однако, не так! Что происходит, что параметр @field
заменяется следующим:
Select * from Employee Where 'Name' = 'Sagar'
Это не возвращает никаких результатов, так как пункт WHERE
всегда false
. Конечно, если вы используете имя поля Sagar
, это akways возвращает true
, как оператор считывает:
Select * from Employee Where 'Sagar' = 'Sagar'
Вот простой тест, чтобы доказать, что я сказал выше. Используйте следующую инструкцию, чтобы установить параметр @field
(предполагается, что нет столбца с именем eirghoerihgoh
в таблице):
com.Parameters.AddWithValue("@field", "eirghoerihgoh");
Если запрос правильно выполняет (возможно, не возвращает никаких результатов), выше правильно. Если это неверно, следует исключить исключение из колонки eirghoerihgoh
.
Thank you Vidhya Sagar Reddy
для подтверждения моей точки зрения. По этой линии
com.Parameters.AddWithValue("@field", "eirghoerihgoh");
Вы говорите, что результатов не получилось, но вы также не получили исключения. Однако, если заявление действительно было изменено на
Select * from Employee Where eirghoerihgoh = 'Sagar'
там должны были быть исключением сказать, что не было никакого столбца с именем eirghoerihgoh
. Как вы не получите это исключение, есть только один из возможных объяснений: Заявление было изменено на
Select * from Employee Where 'eirghoerihgoh' = 'Sagar'
и это выполняется, но не возвращает результаты, так как условие всегда false
.
Без вашей базы данных/схемы таблицы нет никакого способа, кто не может ответить на этот вопрос, в стороне от повторения сообщений об ошибке, как @ThorstenDittmar имеет –
I редактировали свой заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –