неверное значение столбца в предложении where на сервере sql - PullRequest
1 голос
/ 14 ноября 2011

У меня есть функция, которая заполняет таблицу данными содержимым таблицы.Но он показывает досадную недопустимую ошибку имени столбца со значением, которое я даю в предложении WHERE.

public static DataTable GetRequests(string empid)
{
   DataTable dt = new DataTable();
   string strConnection = ConfigurationManager.AppSettings["connStr"];
   using (SqlConnection connection = new SqlConnection(strConnection))
   {
      connection.Open();
      SqlCommand sqlcmd = new SqlCommand();
      SqlDataAdapter sAdap = new SqlDataAdapter();                
      sqlcmd.Connection = connection;
      sqlcmd.CommandType = System.Data.CommandType.Text;
      sqlcmd.CommandText = "Select * from requests Where emp_id=P001";                
      sAdap.SelectCommand = sqlcmd;
      sAdap.Fill(dt);
   }
   return dt;            
}

Теперь при этом я получаю ошибку на

sAdap.fill

, и ошибка

invalid column name P001

Я в тупике.Есть идеи, почему я сталкиваюсь с этой проблемой?

Ответы [ 5 ]

5 голосов
/ 14 ноября 2011

Если это строковая константа, заключите ее в одинарные кавычки.«P001» или еще лучше, парамаратировать его.

2 голосов
/ 14 ноября 2011

Вам нужны разделители строк вокруг значения. Измените строку на:

sqlcmd.CommandText = "Select * from requests Where emp_id='P001'";

с одинарными кавычками вокруг P001, и все будет в порядке.

1 голос
/ 14 ноября 2011

Вам нужно использовать одинарные кавычки.

where emp_id='P001'
0 голосов
/ 14 ноября 2011

Вы должны окружить (условно) текстовые критерии одинарными кавычками:

sqlcmd.CommandText = "Select * from requests Where emp_id = 'P001'";
0 голосов
/ 14 ноября 2011

Похоже, ваши данные P001 имеют строковый тип.Попробуйте заключить его в одинарные кавычки, прежде чем вводить в виде строки sql.

sqlcmd.CommandText = "Select * from requests Where emp_id='P001'";

Если это не сработает (хотя и должно), вы можете попробовать оператор like, как в:

sqlcmd.CommandText = "Select * from requests Where emp_id like 'P001'"; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...