c# - SQLite 错误 : near "s": syntax error

标签 c# sqlite

我总是得到这个错误

near "s": syntax error

我的实现:

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”附近说:语法错误

我正在使用这个库 http://adodotnetsqlite.sourceforge.net/

最佳答案

str 的值包含撇号时,此查询将不起作用,因为字符串将过早终止:

select * from mey where trans like '%King Solomon's Mines%'

必须使用参数:

cmd = new SQLiteCommand("select * from mey where trans like @pattern", litecon);
cmd.Parameters.AddWithValue("@pattern", "%" + str + "%");

关于c# - SQLite 错误 : near "s": syntax error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17280051/

相关文章:

C#,为什么 XmlSerializer 序列化基础对象而不是接口(interface)?

c# - 在 C# (uwp) 中执行 Ping

c# - c++调用opencv相关函数并打包成dll,c#调用不了

java - 无法向 SQLite 中的表插入信息

c - Sqlite3 - 试图在回调中填充结构

c# - 在 Entity Framework 5 Code First 中覆盖 SaveChanges 以复制旧遗留库的行为

c# - 我怎么能对文字字符串参数施加约束

Android - 如何处理 1000 条记录 SQLite

sqlite - sqlite触发器会触发其他触发器吗?

sqlite - 字段的后期计算