【发布时间】:2013-06-24 16:10:04
【问题描述】:
我总是得到这个错误
“s”附近:语法错误
我的实现:
litecon.ConnectionString = "Data Source=" + AppAddress + "\\database\\mynew22.db;Version=3;UTF16Encoding=True";
从这个方法收到错误 -> liteda.Fill(dt);
if (lang == "FaToMe")
liteda.SelectCommand = new SQLiteCommand("select * from mey where trans like '%" + str + "%'", litecon);
else
liteda.SelectCommand = new SQLiteCommand("select * from mey where pe like '%" + str + "%'", litecon);
DataTable dt = new DataTable();
liteda.Fill(dt); //liteda is SQLiteDataAdapter
这个选择命令没有区别...
"select * from mey where pe like '%" + str + "%'"
或
"select eng "
总是在“s”附近说:语法错误
但如果使用“xselect * from mey”,在“x”附近说:语法错误
【问题讨论】:
-
您要求进行注入攻击...
-
桌子长什么样子?
-
@PinnyM no - str 是我的值/变量想要在我的数据库中找到它,它可以具有任何值,例如 'iran'、'usa'、....
-
您是否尝试过用分号 (;) 结束查询?
-
好吧,您遇到了这样一个问题,即像这样处理命令而不是使用正确的参数化查询。以自己的方式进行操作,您会遇到不太“正确”的 SQL 语句,因为您没有平衡逗号或引号。使用参数化查询将让库为您完成工作并代表您处理它。获取它生成的 SQL 命令的副本(打印输出)。手动在您的数据库上运行它 - 您会得到什么?