C# C“SQlite SQL逻辑错误或缺少数据库\r\nNAR\”;a\";:语法错误
尝试运行此方法时出现错误:C# C“SQlite SQL逻辑错误或缺少数据库\r\nNAR\”;a\";:语法错误,c#,sqlite,C#,Sqlite,尝试运行此方法时出现错误: public bool InsertLog(string logMsg, string type) { bool result = false; string sql = "INSERT INTO `log`(`logmsg`, `type`) VALUES (?a, ?b)"; using (SQLiteConnection conn = new SQLiteConnection(m_dbConnectionString)) {
public bool InsertLog(string logMsg, string type)
{
bool result = false;
string sql = "INSERT INTO `log`(`logmsg`, `type`) VALUES (?a, ?b)";
using (SQLiteConnection conn = new SQLiteConnection(m_dbConnectionString))
{
conn.Open();
using (var comm = conn.CreateCommand())
{
comm.CommandText = sql;
comm.Parameters.AddWithValue("?a", logMsg);
comm.Parameters.AddWithValue("?b", type);
int res = comm.ExecuteNonQuery();
result = (res == 1);
}
conn.Close();
}
return result;
}
在此数据库表上:
CREATE TABLE log (
id INTEGER PRIMARY KEY,
createdAt DATETIME DEFAULT (datetime('now', 'localtime') ),
logmsg TEXT,
type VARCHAR
);
错误消息是
{“SQL逻辑错误或缺少数据库\r\nNAR\'a\':语法错误”}
(System.Data.SQLite.sqliteexpection
)。插入查询中的语法错误在哪里?我看不出来。我不能这样使用准备好的陈述吗 值(?,)中的引号用于位置参数,因此?a
不正确(但是,您可以使用类似?123
的内容)。如果要使用命名参数,请将其更改为@a
请参阅。Perfect,在mysql中,我需要使用问号,所以我认为可以。我会在可能的时候接受你的回答。谢谢