我正在尝试使用 SQLite 作为我的存储。我还使用 nuget 和 using 语句添加了引用 dll。
我有
private void SetConnection()
{
sql_con = new SQLiteConnection
("Data Source=c:\\Dev\\MYApp.sqlite;Version=3;New=False;Compress=True;");
}
private void ExecuteQuery(string txtQuery)
{
SetConnection();
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
sql_cmd.CommandText = txtQuery;
sql_cmd.ExecuteNonQuery();
sql_con.Close();
}
我正在发送这样的查询 txt
public void Create(Book book)
{
string txtSqlQuery = "INSERT INTO Book (Id, Title, Language, PublicationDate, Publisher, Edition, OfficialUrl, Description, EBookFormat) ";
txtSqlQuery += string.Format("VALUES (@{0},@{1},@{2},@{3},@{4},@{5},@{6},@{7},{8})",
book.Id, book.Title, book.Language, book.PublicationDate, book.Publisher, book.Edition, book.OfficialUrl, book.Description, book.EBookFormat);
try
{
ExecuteQuery(txtSqlQuery);
}
catch (Exception ex )
{
throw new Exception(ex.Message);
}
}
我的数据库已正确创建并通过有效数据传递书籍实例是可以的。但是在这行代码上执行查询时总是抛出异常:
sql_cmd.ExecuteNonQuery();
我显然在这里做错了什么,但我看不到。
更新:抛出的异常消息是
SQL 逻辑错误或缺少数据库
无法识别的令牌:“22cf”
这22cf
是传递的book.Id
guid 字符串的一部分。