繁体   English   中英

无法弄清楚如何在C#中的查询表达式错误中修复语法错误(缺少运算符)

[英]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.

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