永发信息网

asp.net中怎么处理并发操作?

答案:2  悬赏:80  手机版
解决时间 2021-03-10 18:47
  • 提问者网友:火车头
  • 2021-03-09 21:42
假如三台机器“同时”(也就是不存在先后问题)操作一条数据(假如为更新),这个问题怎么处理?
最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-03-09 23:10
C#有C#的处理同步异步的语法,数据库有数据库控制并发的锁。
而且这个问题并不是简单靠语法来解决的,要看你的设计。
全部回答
  • 1楼网友:千夜
  • 2021-03-09 23:29
你的id不是自动增长的那种?如果不是那你就算一个表也得考虑并发啊 假定你用的是sql server如果你的id是自动增长的, 那使用 scope_identity() 来返回, 如下declare @newid intinsert into table_a (column1, column2) values(v1, v2)select @newid  = scope_identity()insert into table_b (idcolumn, column3, column4) values (@newid, v3, v4)select @newid  如果你的id不是这样的, 那你得用事务, 然后锁表了, 建议单开一个表用来存储最后一个id值。declare @newid intselect @newid = nextid from identity_log with (updlock) where tablename = 'table_a'insert into table_a ...insert into table_b ...update identity_log set nextid = @newid + 1 where tablename = 'table_a' 这段代码要运行在事务中, 推荐使用 sqltransaction 或 transactionscope当然也以把以上的sql改一下, 加个 begin tran, rollback tran, commit tran, 并正确使用 if(@@error <> 0)  
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯