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