日期:2014-05-17  浏览次数:21120 次

SQL语句错误:至少一个参数没有被指定
本帖最后由 qq2593010346 于 2013-04-12 22:31:57 编辑

原来是以下这条语句,执行操作时完全正常

//
string strSel = "select * from CustomerData where " + datafiled + " like '%" + keyWords + "%' and userName='" + userName + "' order by id asc";
//
//


现改为如下这样却出错了:

   OleDbParameter[] parameters = { 
       new OleDbParameter("@datafiled", datafiled),
       new OleDbParameter("@keyWords", keyWords),
       new OleDbParameter("@userName", userName),
                              };
string strSel = "select * from CustomerData where @datafiled like '%@keyWords%' and userName=@userName order by id asc";

//出现的错误提示为:至少一个参数没有被指定
//但是我通过MessageBox.Show来看参数没有问题


请问我该如何解决这个问题?


------解决方案--------------------
new OleDbParameter("@userName", userName), 后面多了“,”
------解决方案--------------------
你看看别的地方,应该不是Sql语句的问题
------解决方案--------------------
@userName  这里你看看是不是少了一对 '' 单引号
------解决方案--------------------
可能是 @datafiled ,不能用参数指定字段名,
------解决方案--------------------

like '%@keyWords%'
这句有问题,以前也遇到过。

搞忘记了,不知道是不是这样写的,你google一下吧。
---》like '%+@keyWords+%'
------解决方案--------------------
like 这里需要改为like '%'+@keyWords + '%'
如果是Oracle,DB2,+需要写成 
------解决方案--------------------
引用:
可能是 @datafiled ,不能用参数指定字段名,

对的.楼主改成过程用EXEC才可以.
------解决方案--------------------
like '%@keyWords%'

这叫什么语法啊?自创的吗?