将数据表保存到MS Access表

时间:2018-07-09 22:27:37

标签: vb.net ms-access oledb

背景信息:

我有一个DataGridView,可以将MS Access中的表加载到其中和/或添加数据。它不是数据绑定的(我不想要)。 我以前所做的是在保存新数据之前从MS Access表中删除数据。但我想以正确的方式进行操作(+丢失数据的机会会更少)。


问题: 当我这样做

Adapter.Update(DataTable) 'OleDb.OleDbDataAdapter

就像在行中添加数据到datagridview一样,最后只是添加(插入)数据。

我想做的是覆盖MS Access表中的数据,使其看起来与新保存的数据相同(可以更新的行得到更新,添加了新行,删除了删除的行)

换句话说,如果我要保存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表中,以便覆盖其中已经存在的数据。

1 个答案:

答案 0 :(得分:0)

这是由于行状态被“添加”了,解决它的唯一方法是将各个行状态更改为适当的状态。

由于没有更好的答案,因此我看不到其他解决方法,因此请关闭它。

相关问题