使用对内存数据表所做的更改更新 SQL Table

Updating SQL Table with the changes made to an in-memory datatable

我在 SQL 数据库(在本地网络上)中有一个 table,有 5,000 多行。此数据被加载到我正在开发的客户端应用程序中的内存数据 table 中,供最终用户查看、搜索和操作记录。

我的问题是一旦用户完成对数据的操作,将其写回 SQL table 的最佳方法是什么? 我可以清除 SQL table 并将整个内存数据 table 发送到 SQL 服务器,但是考虑到大量记录,这似乎是一种狡猾且低效的方法过程。

有没有人想到一个解决方案?例如,以某种方式跟踪用户更改的记录并仅通过 SQL 查询更新那些记录?

处理此问题的最佳方法是什么?如有必要,我很乐意完全重新考虑我的方法。

SqlDataAdapter.Update和关于跟踪的变化不要重新发明轮子。 DataRow.RowState – 史蒂夫

配置数据集时,您可以定义适合您需要的更新语句。

您正在操作的数据表将跟踪它自己的更改,您可以使用 GetChanges 方法获取它们。当您调用适配器的 Update 函数时,您只能发送数据表的更改。

https://msdn.microsoft.com/en-us/library/k2552649%28v=vs.110%29.aspx

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.update%28v=vs.110%29.aspx