日期:2014-05-18  浏览次数:20367 次

关于资金修改的一段代码
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