gpt4 book ai didi

c# - WPF SQLite 查询异常

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:29 25 4
gpt4 key购买 nike

有多个相关问题,但没有一个能解决我的问题。我有一个连接到 sqlite 数据库的 C# (WPF) 应用程序。数据库中有 2 个模型类 - Dealer 和 Order 以及 2 个对应的表。

我能够在 Dealer 表中执行 CRUD 操作,但是当尝试在 Order 表中执行相同操作时,我得到一个异常 - SQL 逻辑错误或缺少数据库。我正在粘贴一些相关代码:

经销商

using(SQLiteConnection conn = new SQLiteConnection(connectionString)) {
conn.Open();
using(SQLiteCommand cmd = new SQLiteCommand(conn)) {
cmd.CommandText = "INSERT INTO Dealer(name, address, contact, note) VALUES (@Name, @Address, @Contact, @Note)";
cmd.Prepare();
cmd.Parameters.AddWithValue("@Name", dealer.Name);
cmd.Parameters.AddWithValue("@Address", dealer.Address);
cmd.Parameters.AddWithValue("@Contact", dealer.Contact);
cmd.Parameters.AddWithValue("@Note", dealer.Note);
try {
result = cmd.ExecuteNonQuery();
}

订购

using(SQLiteConnection conn = new SQLiteConnection(connectionString)) {
conn.Open();
using(SQLiteCommand cmd = new SQLiteCommand(conn)) {
cmd.CommandText = "INSERT INTO Order(dealer_id, note) VALUES (@DealerId, @Note)";
cmd.Prepare();
cmd.Parameters.AddWithValue("@DealerId", order.DealerId);
cmd.Parameters.AddWithValue("@Note", order.Note);
try {
result = cmd.ExecuteNonQuery();
}

我在订单的 cmd.ExecuteNonQuery(); 语句中得到异常。

我已经交叉验证了列名拼写并尝试了 SELECT * FROM Order 再次返回相同的异常。

我还尝试了 SELECT name FROM sqlite_master WHERE type='table' AND name='Order'; 来自上面的 For Order 代码来检查表是否存在并且它返回正确的表名。

请帮忙。提前致谢。

最佳答案

ORDER 是 SQLite 中的保留关键字,因此您应该引用它,例如使用 [ ... ]:

cmd.CommandText = "INSERT INTO [Order] (dealer_id, note) VALUES (@DealerId, @Note)";

SQLite中有四种引用关键字的方式:https://sqlite.org/lang_keywords.html

关于c# - WPF SQLite 查询异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44265350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com