c# sqlite数据表到数据库更新将无法工作
本文关键字:工作 更新 数据库 sqlite 数据表 | 更新日期: 2023-09-27 18:08:22
我有一个c#程序,其中INSERT, SELECT工作正常。我想尝试更新我的DataGridView
到数据库。
如果我在GridView中删除一行,然后它被发送到数据库作为一个数据表,所有这一切都很好,除了一件事,它写新的条目到我的三行,应该是2后删除成为5。
下面是我的代码: public void Update(DataTable dataforupdate, string table)
{
if (table == "Musik")
{
SQLiteDataAdapter adapter = new SQLiteDataAdapter("SELECT * FROM Musik",m_dbConnection);
SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
adapter.Update(dataforupdate);
}
}
它应该删除表,然后插入包含所有数据的数据表(因为当有多个删除或插入时,这是最简单的事情)。
编辑:它现在复制表并插入它,所以表在那里2次。在添加数据表之前使用"DELETE FROM music"似乎有点不必要,但它确实有效,如果你能帮助我,我想知道一个更好的解决方案。
我不敢苟同。实际上,您正在做的事情实际上是危险的,因为您没有使用事务。如果在清空DB之后插入记录出现异常,会发生什么?你失去了一切。它应该删除表,然后插入包含所有数据的数据表(因为当有多个删除或插入时,这是最简单的事情)。
在SQLite(或任何DB)中执行多次插入/删除是相当琐碎的,例如
INSERT INTO SomeTable VALUES (A, B, C...)
INSERT INTO SomeTable VALUES (D, E, F...)
...
对于删除,这完全取决于删除的条件。例如,如果我想删除A > 10
DELETE FROM SomeTable WHERE A > 10
我建议你考虑使用像sqlite-net这样的ORM,它为你做了很多繁重的SQL提升。