关于资金修改的一段代码
C# code
member m=bssmember.getmember(id);
m.money+=100;
bssmember.update(m);
如果现在用户有100元资金,连个管理员同时给用户加了100元,
最终用户的资金是300元么?会不会出现200元的情况?如果会怎么避免?
------解决方案--------------------object obj = new objcet()
lock(obj)
{
member m=bssmember.getmember(id);
m.money+=100;
bssmember.update(m);
}
------解决方案--------------------bssmember 里面有updatetime 对time进行对比 如果time不对 不让更新 或者添加一个版本号 如果 当前版本号 与数据库中存入版本号不匹配 也不让更新
------解决方案--------------------bssmember 里面有updatetime 对time进行对比 如果time不对 不让更新 或者添加一个版本号 如果 当前版本号 与数据库中存入版本号不匹配 也不让更新
------解决方案--------------------在数据库设置数据库里面 设置一个更新的time 更新的时候 使用time update dbo updatetime=个体date(), set a='a' where id=id and updatetime=当前取出的time