给出代码:
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/