繁体   English   中英

SQL Server中where子句中的列值无效

[英]invalid column value in where clause in sql server

我有一个函数,可以用表的内容填充数据表。 但是它显示了一个令人讨厌的无效列名错误,并带有我在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

我为此感到难过。 有什么想法为什么我要面对这个问题吗?

如果它是字符串常量,请用单引号将其引起来。 'P001'或更好,对其进行归类。

您需要在值周围使用字符串定界符。 将行更改为:

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

用P001周围的单引号引起来,您应该会很好。

您需要使用单引号。

where emp_id='P001'

看来您的P001数据是字符串类型。 在将其作为sql字符串输入之前,请尝试用单引号将其引起来。

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

如果那不起作用(尽管应该),则可以尝试如下所示的like语句:

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

您需要用单引号括住(显然)文本条件:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM