我遇到以下情况:当表单加载并且检索到的数据通过下面的DataGridView
填充到DataTable
时,数据库中会有一个表格被查询。加载数据后,用户可以自由修改数据(添加/删除行,修改条目)。
表单有2个按钮:Apply
和Refresh
。第一个将更改发送到数据库,第二个重新读取数据库中的数据并删除用户所做的任何更改。
我的问题是:这是保持DataGridView与数据库同步的最佳方式(从用户的角度来看)吗?
目前这些都是缺点:
我尝试将更改发送到CellEndEdit
事件上的数据库,但用户还需要一些撤消/重做功能,那就是......好吧......不同的故事。
那么,有什么建议吗?
答案 0 :(得分:1)
我会说你现在这样做的方式很好。如果您在用户仍在进行编辑时开始尝试更新数据库,则可以运行以更新或修改用户最终可能决定不想更改的内容。此外,这有可能大大增加数据库调用的数量。
强制用户单击“应用”有助于确保仅将用户实际需要的更改发送到数据库。
至于在应用程序崩溃之前丢失更改,我会更加关注应用程序崩溃的原因。
答案 1 :(得分:0)
唯一需要记住的是,您应该在保存数据之前重新获取数据,并且重新获取的数据仍应与您最初向用户显示的数据相匹配。如果没有,其他人进行了更改,您的用户将在不知不觉中被覆盖。您的用户可能不喜欢这样。
如何处理这取决于客户在数据库中的需求。