ADO.NET访问数据库如何避免并发访问带来的错误?? ADO.NET访问数据库如何避免并发访问带来的错误??是用程序本身保证吗?还是依靠数据库?还是其它什么方法来保证呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/t/20041012/13/3447878.html或许对你有帮助! 数据库确实有专门的并发访问机制,但是在ADO.NET中访问数据是先读取数据,在断开数据库的条件下分析数据,最后再更新数据的,这中间有个断开连接的过程,否则,直接用事物作为SQL语句,再执行executenonequery()就能保证了,相当于是数据库操作了,但目前情况不同与这个 基本的数据操作,数据库和ADO.NET都提供了并发控制的,但一些复杂的并发情况就需要自己手动编码了,也就是数据库和ADO.NET都提供了相应的一些功能可以让你自己可以编码进行并发控制(如多表互锁之类的),个人理解 数据库如果不显式定义事务(没打开隐式事务前提下),就是不用begin transaction,每个语句将看成一个事物进行处理,这个情况下,并发控制机制用默认的隔离级别(好象是可重复读级别吧,忘了),实现并发控制,但这个是在数据库里面的操作,如果在ADO.NET中要先提取数据,断开连接分析数据,然后提交的话,就无法用事务了,其次,ADO.NET的dataset确实有并发访问机制,属于乐观并发控制(当操作不成功则回滚所有语句),这个没有返回什么提示或返回值,所以即使回滚了,你却不知道,那该怎么办,至于直接用C#代码附加功能来控制,(在操作数据前,可以先核对数据是否被改动),这样我是觉得可行,但是看了几个别人的程序,好象都没这个机制,是不是我想太多了?? 如何判断一个方法的执行时间 C#如何从获取到的网页内容中抓取自己想要的部分? partial关键字在窗口程序中的问题 大型数据的计算 为什么有时实行dos命令时,必须在特定的bin目录下,否则命令无效? 请问如何将treeview内容导出到xml文件中? WPF 播放视频问题 关于WMI应用中的拒绝访问的问题 AD中查找这个用户的其他相关信息 我打不开sln的文件了 这是什么错误啊? DataGridView点击右键时突然出现问题(在线等)
最后再更新数据的,这中间有个断开连接的过程,否则,直接用事物作为SQL语句,再执行executenonequery()
就能保证了,相当于是数据库操作了,但目前情况不同与这个
数据库如果不显式定义事务(没打开隐式事务前提下),就是不用begin transaction,
每个语句将看成一个事物进行处理,这个情况下,并发控制机制用默认的隔离级别(好象是可重复读级别吧,忘了),实现并发控制,但这个是在数据库里面的操作,如果在ADO.NET中要先提取数据,断开连接分析数据,然后提交的话,就无法用事务了,其次,ADO.NET的dataset确实有并发访问机制,属于乐观并发控制(当操作不成功则回滚所有语句),这个没有返回什么提示或返回值,所以即使回滚了,你却不知道,那该怎么办,至于直接用C#代码附加功能来控制,(在操作数据前,可以先核对数据是否被改动),这样我是觉得可行,但是看了几个别人的程序,好象都没这个机制,是不是我想太多了??