C#的一个数据集问题?请高手赐教 小弟在写一段代码,如果多个客户端使用数据适配器连接数据库然后把数据读到本地内存中,这样如果修改了内存中的数据,然后读回到数据库中,会不会引起数据库中的数据不正确。比如2个客户端都通过数据适配器把数据读到数据集中修改之后,又同时写入数据库。会造成数据不正确嘛? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实也不要紧了,数据始终保持随后一个进行更新的记录,就算俩人同时操作,也要分个前后,这就类似于一个人连着更新两次数据,如果你是想当一个人在操作数据时,禁止其他人访问的话,那就使用lock进行数据保护,但是多人操作的话,效果不好~~ 如果没有在sql语句中加锁的话,最后会造成数据库中数据不对。当然如果用事务的话本身也会加锁。解决方案:在读入数据库到内存的时候给所要操作的表加锁。操作完之后解锁 两个客户端操作,b/s的,只要不是static,每个用户操作的时候会定义不同的对象,这样用的就不是同一个数据集,就不会冲突static除外 不会的 DbCommandBuilder的ConflictOption属性 默认为CompareAllSearchableValues,即更新和删除语句将在 WHERE 子句中包含表中的所有可搜索列另外的用户更改后,你再更新会产生更新期望值0条记录的错误。 如果两个人操作的话,如果第一个修改了数据库的数据,第二个在去修改的话,因为where条件发生了变化,所以不会修改到数据;但是如果是根据主键来的话,估计会有问题。 不会,如果两个用户更新同一条记录,后一次会引发更新冲突。看你的适配器如何设计了。用现成的commandbuild应该就行了www.datasonar.com c#如何往excel中追加一个图片 在C#下treeview递归获取活动目录信息 datagridview双击的问题 急!急!如何添加一个label控件没有的事件? 哪位好心的大侠能提供给小弟C#入门源码? 高分请教 DataGrid 修改列宽和列标题的问题 C#访问数据库的问题讨论 用VisualStudio 怎么弄版本哈? 如何获取一个dll是被什么类型的程序引用 求助: C#,C# builder,C++ Builder大家觉得哪个好? 可能分有点儿少了,100分再问一下:winform一个窗体可以调用另一个窗体中的事件或函数吗? c# 资源释放问题,在线等....
这就类似于一个人连着更新两次数据,如果你是想当一个人在操作数据时,禁止其他人访问的话,
那就使用lock进行数据保护,但是多人操作的话,效果不好~~
当然如果用事务的话本身也会加锁。
解决方案:
在读入数据库到内存的时候给所要操作的表加锁。操作完之后解锁
static除外
另外的用户更改后,你再更新会产生更新期望值0条记录的错误。
看你的适配器如何设计了。
用现成的commandbuild应该就行了www.datasonar.com