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"似乎有点不必要,但它确实有效,如果你能帮助我,我想知道一个更好的解决方案。

c# sqlite数据表到数据库更新将无法工作

它应该删除表,然后插入包含所有数据的数据表(因为当有多个删除或插入时,这是最简单的事情)。

我不敢苟同。实际上,您正在做的事情实际上是危险的,因为您没有使用事务。如果在清空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提升。