[英]Cannot figure out how to fix syntax error (missing operator) in query expression error in C#
我遇到上述错误的问题,无法找到修复它的确切方法。
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("Select count(*) from [contractors$] where " + category + " like '*@name*'", eh.Connection);
dataAdapter.SelectCommand.Parameters.Add("@name", OleDbType.VarChar).Value = "*" + name + "*";
OleDbCommand command = dataAdapter.SelectCommand;
OleDbDataReader reader = command.ExecuteReader();
确切的错误是..
查询表达式'like'@ name '中的语法错误(缺少运算符)。
我也已经在寻找解决这个问题的方法,并试图使它们适应尝试进行这项工作,但是没有运气(上述尝试是其中之一)
提前非常感谢!
好的,现在我将代码更改为此。
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("Select count(*) from `contractors$` where " + category + " LIKE @name", eh.Connection);
dataAdapter.SelectCommand.Parameters.Add("@name", OleDbType.VarChar).Value = "%" + name + "%";
OleDbCommand command = dataAdapter.SelectCommand;
OleDbDataReader reader = command.ExecuteReader();
但是我仍然遇到同样的错误。
参数不能包含在SQL字符串文字中。 使用串联来构建字符串:
"... LIKE ('%' + @name + '%') ..."
更新资料
看来category
的值为null或为空,从而创建了无效的SQL语句:
Select count(*) from [contractors$] where like '@name'
^^^ no category here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.