代码之家  ›  专栏  ›  技术社区  ›  Ezekiel Rage

正在将DataGridView(DataTable)与数据库同步

  •  0
  • Ezekiel Rage  · 技术社区  · 16 年前

    我有以下情况:数据库中有一个表,当表单加载并将检索到的数据填充到 DataGridView 通过 DataTable 在下面。加载数据后,用户可以自由修改数据(添加/删除行、修改条目)。

    表单有两个按钮: Apply Refresh . 第一个将更改发送到数据库,第二个将从数据库重新读取数据,并删除用户所做的任何更改。

    我的问题是:这是(从用户的角度)保持DataGridView与DB同步的最佳方法吗?

    目前,这些都是不利因素:

    1. 用户必须跟踪他正在做的事情,并且必须每隔一段时间按下按钮。
    2. 如果表单关闭/app crash/…,则修改将丢失。

    我尝试将更改发送到上的数据库 CellEndEdit 事件,但用户还需要一些撤消/重做功能,即…好。。。另一个故事。

    有什么建议吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   cptScarlet    16 年前

    我想说,你现在的做法是好的。如果您在用户进行编辑时开始尝试更新数据库,则可以运行到更新或修改用户可能最终决定不希望更改的问题中。此外,这有机会大大增加数据库调用的数量。

    强制用户单击“应用”有助于确保仅将用户实际想要的更改发送到数据库。

    至于应用程序在应用之前崩溃而丢失更改,我更关心应用程序崩溃的原因。

        2
  •  0
  •   jmucchiello    15 年前

    唯一需要记住的是,在保存数据之前应该重新蚀刻数据,并且重新蚀刻的数据仍然应该与最初显示给用户的数据相匹配。如果不这样做,其他人做了更改,您的用户将在不知情的情况下被覆盖。您的用户可能不喜欢这样。

    如何处理这取决于您的客户机在其数据库中需要什么。