2015-04-05 34 views
0

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

我的问题是一旦用户完成操作数据,将其写回SQL表的最佳方式是什么?我可以清除SQL表并将整个内存中的数据发送到SQL服务器,但由于记录数量很多,这看起来像是一个狡猾和低效的过程。

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

什么是最好的处理方法?如果有必要,我很乐意彻底重新考虑我的方法。

+0

[SqlDataAdapter.Update](https://msdn.microsoft.com/en-us/library/z1z2bkx2(V = vs.110)的.aspx)和约_tracking changes_不要重新发明轮子。 [DataRow.RowState](https://msdn.microsoft.com/en-us/library/system.data.datarow.rowstate(v = vs.110).aspx) – Steve 2015-04-05 08:45:02

+1

您好Steve,感谢您的指导。这是我第一次做这样的事情,但听起来像我需要的东西。再次感谢 – tpag26 2015-04-05 08:50:45

+0

有很多记录,DataAdapter可能会很慢。如果遇到瓶颈问题,考虑将整个DataTable保存到一个temportary表(例如,从YourTableName中选择* Into #MyTemp),使用SqlBulkCopy将数据保存到它,然后使用MERGE语句让数据库应用您的更改, – 2015-04-05 10:37:01

回答

0

SqlDataAdapter.Update和有关跟踪更改不会重新发明轮子。 DataRow.RowState - Steve