我試圖使用SQLite作爲我的存儲。我已經使用nuget添加了引用dll,並使用了語句。SQLite簡單插入查詢
我
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字符串的一部分。
拋出了什麼異常? – Alireza
@Alireza更新了問題 – user2783193
我注意到你沒有使用正式參數到你的SQL命令。這不是很明智,因爲您不得不擔心將數據呈現給SQL語句(即格式化日期,小數點分隔符等)。 –