代码之家  ›  专栏  ›  技术社区  ›  CruleD

将数据表保存到MS Access表

  •  -1
  • CruleD  · 技术社区  · 7 年前

    背景信息:

    我有一个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:如何将数据表保存到MS Access表中,以便它覆盖其中已有的数据。

    1 回复  |  直到 7 年前
        1
  •  0
  •   CruleD    6 年前

    这是因为行状态被“添加”,唯一的解决方法是将单个行状态更改为适当的状态。

    我看不出其他解决方法,所以我会关闭它,因为没有更好的答案。