我有数据输入表格,例如...
数据输入表 http://img192.imageshack.us/img192/2478/inputform.jpg
有一些空行,其中一些有值。用户可以更新现有值,也可以在空行中填充值。
我需要在我的数据库表中映射这些值,其中一些将作为新行插入到数据库中,并且现有记录将被更新。
我需要你的建议,我怎样才能用最好的方法完成这个场景。
谢谢
我有数据输入表格,例如...
数据输入表 http://img192.imageshack.us/img192/2478/inputform.jpg
有一些空行,其中一些有值。用户可以更新现有值,也可以在空行中填充值。
我需要在我的数据库表中映射这些值,其中一些将作为新行插入到数据库中,并且现有记录将被更新。
我需要你的建议,我怎样才能用最好的方法完成这个场景。
谢谢
对于每一行,我都会有一个主键(隐藏)、一个脏标志和一个新标志。在网格中,您可以在进行更改时将“dirty”标志设置为 true。在 UI 中添加新行时,您将设置新标志并生成主键(如果您使用 GUID 作为键,这将是最简单的)。然后,当您将这些全部发布回服务器时,您将在设置新标志时进行插入,并为带有脏标志的那些进行更新。
数据提交完成后,您只需清除脏标志和新标志。
当然,如果数据由多个贡献者共享并且可以同时编辑,那么如果您不希望有人覆盖另一个人的编辑,则涉及更多。
我会考虑使用 ADO.netDataSets
并将DataTables
其作为自定义数据网格的内存中的后备存储。ADO.net 允许您从数据库中批量加载数据集,并针对内存中的数据跟踪插入、更新和删除。完成后,您可以将存储的事务批量处理回数据库。
使用 ADO.net 的最大好处是所有的棘手更改跟踪代码都已经为您编写好了,并且该库已部署到每台支持 .net 的机器上。
虽然它现在不流行,但您也可以使用 XML 序列化通过网络发送 ADO.net 数据集以进行更改,然后将其发送回以处理到数据库中。
谷歌周围。有数以千计的关于如何使用 ADO.net 的书籍、教程和博客文章。