将数据Table 保存到 MS Access Table
Saving DataTable to MS Access Table
背景资料:
我有一个 DataGridView,我可以将 table 从 MS Access 加载到其中 and/or 也可以添加数据。它不是数据绑定的(我不想要它)。
我之前所做的是在保存新数据之前从 MS Access table 中删除数据。但我想以正确的方式进行(+丢失数据的可能性较小)。
问题:
当我这样做时
Adapter.Update(DataTable) 'OleDb.OleDbDataAdapter
数据只是在最后添加(插入),就像您向 datagridview 添加行时一样。
我想做的是覆盖 MS Access table 中的数据,使其看起来与新保存的数据相同(可以更新的行得到更新,添加新的行,删除删除的行)
换句话说,如果我要保存 6 行,我想在数据库中看到 6 行,不多也不少。
我也试过加载数据,然后改,再存回去,结果还是一样。例如,如果我加载 5 行,并保存 5 行,保存后我最终会得到 10 行。
Adapter = New OleDb.OleDbDataAdapter("SELECT * FROM " & DB_TableName, DB_Connection)
Dim TempDataTable As New DataTable
BotDB_Adapter.Fill(TempDataTable )
'edit data here
Adapter.Update(TempDataTable)
TLDR:如何将 DataTable 保存到 MS Access table 以便覆盖其中已有的数据。
这是由于行状态为 "added",解决此问题的唯一方法是将各个行状态更改为正确的状态。
我没有看到其他解决方法,所以我将关闭它,因为没有更好的答案。
背景资料:
我有一个 DataGridView,我可以将 table 从 MS Access 加载到其中 and/or 也可以添加数据。它不是数据绑定的(我不想要它)。 我之前所做的是在保存新数据之前从 MS Access table 中删除数据。但我想以正确的方式进行(+丢失数据的可能性较小)。
问题: 当我这样做时
Adapter.Update(DataTable) 'OleDb.OleDbDataAdapter
数据只是在最后添加(插入),就像您向 datagridview 添加行时一样。
我想做的是覆盖 MS Access table 中的数据,使其看起来与新保存的数据相同(可以更新的行得到更新,添加新的行,删除删除的行)
换句话说,如果我要保存 6 行,我想在数据库中看到 6 行,不多也不少。
我也试过加载数据,然后改,再存回去,结果还是一样。例如,如果我加载 5 行,并保存 5 行,保存后我最终会得到 10 行。
Adapter = New OleDb.OleDbDataAdapter("SELECT * FROM " & DB_TableName, DB_Connection)
Dim TempDataTable As New DataTable
BotDB_Adapter.Fill(TempDataTable )
'edit data here
Adapter.Update(TempDataTable)
TLDR:如何将 DataTable 保存到 MS Access table 以便覆盖其中已有的数据。
这是由于行状态为 "added",解决此问题的唯一方法是将各个行状态更改为正确的状态。
我没有看到其他解决方法,所以我将关闭它,因为没有更好的答案。