C#sqlite datatable到数据库更新将无法正常工作

时间:2014-06-13 07:32:57

标签: c# database sqlite

我有一个C#程序,其中INSERT,SELECT工作正常。我想尝试将DataGridView更新到数据库。

如果我在GridView中删除了一行,那么它将作为DataTable发送到数据库,所有这一切都正常,除了一件事,它将新的条目写入我的三行,删除后应为2。 / p>

这是我的代码:

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

1 个答案:

答案 0 :(得分:1)

  

它应该删除表,然后插入带有所有数据的数据表(因为这是多次删除或插入时最容易做的事情)。

我不同意见。事实上,你所做的事实上是危险的,因为你没有使用交易。如果清空数据库后插入记录有异常会发生什么?你失去了一切

在SQLite(或任何数据库)中进行多次插入/删除是相当简单的,例如

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。