用DataSet时,如何保证数据库的完整性?

cometsky 2003-11-30 12:22:51
DataSet是OffLine的数据库副本,可是在DataSet已经取得数据并OffLine的时候,数据库中的相应记录被他人修改,等DataSet在OffLine的状态下修改了相应的记录后,再来Online更新数据库的时候,按理说就应该会在这条记录上发生“幻想更新”的问题了。
...全文
229 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cometsky 2003-12-02
  • 打赏
  • 举报
回复
saucer(思归) 是世界上最牛的牛!
cometsky 2003-12-02
  • 打赏
  • 举报
回复
只是要写锁定而已,允许读的,不知能否锁定。我也只是想探讨一下。
liusuccess 2003-12-02
  • 打赏
  • 举报
回复
楼主,你这样的做法属于数据库中的悲观锁定,也就是说锁太大了,网络版的产品不可能让一个人独占数据库那么长时间。我觉得最好还是用数据适配器的方法来实时打开连接。这段在Msdn里面有介绍,我忘了是在什么地方。
cometsky 2003-12-02
  • 打赏
  • 举报
回复
我的意思不是等着DataSet更新时出异常,而是想通过什么办法来避免这种情况的出现,也就是说在DataSet Offline的时候,能锁定数据库。How To Do?
顾君彦 2003-12-01
  • 打赏
  • 举报
回复
dataset更新时,适配器内的command对映dataset中相应的数据版本进行更新操作.
在command进行更新时,是逐条更新时,更新的条件原始数据版本.也就是说,当原始版本中的数据(从offline开始)被其它用户修改后,再进行更新时,where条件将不会命中数据,这时,
适配器将会报告 并发冲突的异常. dataset就是这样处理冲突问题的.
白掌柜 2003-12-01
  • 打赏
  • 举报
回复
如果用Dataset更新,当数据库里数据发生变化,更新时会产生一条错误,好像是这样。
liduke 2003-12-01
  • 打赏
  • 举报
回复
不是有merge的方法吗?我觉得用那个就还可以了
anux 2003-12-01
  • 打赏
  • 举报
回复
请仔细的查看一下dataset.merge方法的说明,讲的已经蛮清楚的了。
悟空师傅来了 2003-12-01
  • 打赏
  • 举报
回复
顶...
海峰 2003-12-01
  • 打赏
  • 举报
回复
关注。
eyestrong 2003-12-01
  • 打赏
  • 举报
回复
关注。
wwl1981 2003-12-01
  • 打赏
  • 举报
回复
老大,你太好了。
wjhs 2003-12-01
  • 打赏
  • 举报
回复
saucer(思归)就是牛!
saucer 2003-11-30
  • 打赏
  • 举报
回复
how are you updating the database? if you are using CommandBuilder or similar schemes, you should get Concurrency Exceptions, see an relevant article at

Tackle Data Concurrency Exceptions Using the DataSet Object
http://msdn.microsoft.com/msdnmag/issues/03/04/DataConcurrency/default.aspx

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧