C# SQLite 连接器问题

标签 c# .net sqlite

给出代码:

        SQLiteCommand cmd = new SQLiteCommand("UPDATE \"Category\" SET \"name\"=?name, \"description\"=?description, \"color\"=?color, \"active\"=?active, \"parent\"=?parent WHERE \"id\"=?id", sql);  
        cmd.Parameters.Add("?id", DbType.Int32).Value = _id;  
        cmd.Parameters.Add("?name", DbType.String).Value = _name;  
        cmd.Parameters.Add("?description", DbType.String).Value = _description;  
        cmd.Parameters.Add("?color", DbType.Int32).Value = _color;  
        cmd.Parameters.Add("?active", DbType.Boolean).Value = _active;  
        cmd.Parameters.Add("?parent", DbType.Int32).Value = _parent;  
        cmd.Prepare();  
        cmd.ExecuteNonQuery();  

我们遇到了最后一行抛出的问题

SQLite error  near "name": syntax error  

在我看来这是无稽之谈。肯定还有其他事情发生。该表已连接并打开(因为我可以很好地从表中读取),其他一切都工作得很好。由于某种原因,它似乎无法处理这个简单的更新。

编辑:好的。我尝试将姓名字段完全删除,但仍然没有骰子。然后我就在描述字段上收到错误。这绝对不是关键字问题。

最佳答案

您尝试过以下方法吗?

cmd.Parameters.Add("@id", DbType.Int32);  
cmd.Parameters.Add("@name", DbType.String);  
...

cmd.Parameters["@id"].Value = _id;  
cmd.Parameters["@name"].Value = _name;  
... 

关于C# SQLite 连接器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010770/

相关文章:

C# 16 位浮点转换

c# - 全为 0x00 的字节数组等于 0x08?

c# - 捕获 SQLException 并重试的良好 C# 编码风格是什么

c# - 为什么此后台线程中未处理的异常不会终止我的进程?

ios - 我可以复制一个 .db 文件到我的项目的根目录,然后插入或删除它的数据吗?

c# - 如何更改 Pivot 中 PivotHeaderItem(s) 的样式

c# - 无法远程调试 .Net 应用程序 "no symbols have been loaded for this document."

c# - 从 T 和字符串的隐式转换

c# - 如何在 SQLite 数据库中存储 Windows.UI.Color 对象?

mysql - Rails 4 - 比较来自 MySQL 和 SQLite 的数据