我有一个表格
Table SelectedItems Table AvailableItems
RecordID CheckBoxID CheckBoxID Description
1 1 1 'Tomatoes'
1 2 2 'Potatoes'
1 4 3 'Mangoes'
2 1 4 'Apples'
2 2
现在我想更新选定的记录,问题是我只想知道要插入的新记录。
两个表都作为业务对象列表返回<> ,如何比较列表并仅提取已更改/新行?
请指教。我在VSS 2005上使用webforms。
答案 0 :(得分:1)
当您选择记录时,您是否可以更新业务对象并将其弄脏?我的意思是创建一个类变量,它将作为一个标志,您可以检查它是否已更改或新。选择新行(或旧行)我认为会触发一个事件,您可以使用该事件来修改所选行的业务对象。
然后,当您浏览列表时,您只需要检查生成更改/新状态的业务对象标记。
答案 1 :(得分:0)
如果系统已经在生产服务器上并且运行稳定,请忽略我的回答。如果它仍处于规划/设计/编程阶段,我认为可能会稍微改变数据库将使一切变得更加容易。
Table SelectedItems
RecordID CheckBoxID IsSelected
1 1 true
1 2 true
1 3 false
1 4 true
也就是说,对于某个RecordID和CheckBoxID,您不需要查询该表以查找是否存在相应的记录(这意味着它已被选中)。在新设计中,始终存在这样的记录,状态为IsSelected
。
同时,这种设计也很容易在您的网页中进行维护。您更改的内容只是某行的IsSelected
值,您无需关心“哦,我需要删除一行还是添加一行?” “这一行的数据是否脏了?”......事情变得容易了。