【发布时间】:2014-08-03 16:43:49
【问题描述】:
我有一个 C# 程序,其中 INSERT、SELECT 工作正常。我想尝试将我的DataGridView 更新到数据库中。
如果我删除 GridView 中的一行,那么它将作为 DataTable 发送到数据库,所有这些都可以正常工作,除了一件事,它将新条目写入我的三行,删除后应该是 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 Musik”似乎有点不必要,但它确实有效,如果你能帮助我想知道一个更好的解决方案。
【问题讨论】:
-
你为什么要删除整个表。您应该删除行并更新行。除非您的更改影响了几乎所有表格,否则您的方法是正确的。
-
我认为这会更容易,因为我真的不知道如何正确使用它。
-
目前它需要新条目并插入到数据库中,以及已经存在的所有条目。所以每次我添加一个新条目时,它都会将所有条目 + 1 插入到数据库中,这意味着每次运行时数据库都会加倍。