首页 新闻 会员 周边

asp.net并发控制问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2011-03-22 14:26

最近在写一个购物网站,遇到些问题。点击购买之后,需要将Products表中的 ID 写入CartItems表中,然后 更新Products表中的Status列, 由0变为1 。

涉及到一个并发控制的问题,现在只是把插入订单放入了一个事务代码块中,是不是在把更新Products表的操作也放到插入的事务里 就可以解决并发的问题?

希望有过同样经历的人路过,留下您宝贵的经验。。。

注:问过我一个同学,说是并发控制机制SQL SERVER 2005里有,说不用管就可以。是不是还要在数据库里做些设置?

Survival.Sun的主页 Survival.Sun | 菜鸟二级 | 园豆:267
提问于:2011-03-17 22:48
< >
分享
所有回答(3)
0

因为涉及两个表的操作,最好把这两个操作放在事务中,否则会出现: 如果CartItems更新好了,而Products更细失败,那么两个表不一致,不用事务的话,只能自己处理这个情况了。

2012 | 园豆:21230 (高人七级) | 2011-03-18 08:09
我对数据库的操作语句都是放在 类 Insert方法里面,事务也是asp.net代码里面的
TransactionScope ts = new TransactionScope(),我是不是只要把类里Isert方法掉调用放到 ts事务里去处理就OK 了?
支持(0) 反对(0) Survival.Sun | 园豆:267 (菜鸟二级) | 2011-03-18 10:45
0

搜索一下sql server的默认锁机制 你的操作肯定是应该放在一个事务里了
看这个 SET TRANSACTION ISOLATION LEVEL READ COMMITTED  

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2011-03-18 09:33
0

我们以前用过,放一个事务里就OK了

技术新手 | 园豆:125 (初学一级) | 2011-03-18 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册