SQL事务问题求大神.
using (IDbConnection conn = Query.CreateConnection(true)){
int memberId = xxx;
IDbTransaction trans = conn.BeginTransaction();
Query.insert(cmd,trans);
.......
int totalPoints = xxxx;
doUpdate(memberId,trans,totalPoints);
}
void doUpdate(int memberId,IDbTransaction trans){
string cmd = "UPDATE [{0}] SET PayPoints = @PayPoints WHERE MemberId = @MemberId";
int num = Query.Execute(string.Format(cmd, "userTable"), CommandType.Text, trans, new SqlParameter("@PayPoints", totalPoints), new SqlParameter"@MemberId", memberId));
}
代码大概如上,doUpdate之前的INSER UPDATE都没问题。查询相关表数据都正常。但在doUpdate里面的update命令
有时候更新不了。也就是相关的积分日志都写入了。但最后UPDATE总分的时候失败。
例如 已保存这一样一条积分日志
date memberid pay_points
2013-10-10 1 100
但最后userTable的PayPoints字段更新不了.用户积分为0
这种现象隔4-5天就出现一次,我快要吐了。求大神解救!! 事务 sql --------------------编程问答-------------------- 把sql写到日志,看出错的语句怎么执行的
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/ --------------------编程问答-------------------- UPDATE [AL_Members] SET PayPoints = 400 WHERE MemberId = 2528 , changeTime => 2013/10/20 17:11:07 , pointWithExpiress => 100 , result => 1 , orderSn => 1310200004614
UPDATE [AL_Members] SET PayPoints = 500 WHERE MemberId = 2528 , changeTime => 2013/10/20 17:11:21 , pointWithExpiress => 100 , result => 1 , orderSn => 1310200004615
所以才郁闷,UPDATE的语包都保存起来了。result => 1 也就是executeNonQuery返回的影响行数。1行。。
郁闷啊!! --------------------编程问答-------------------- 你有记录跟更的语句和异常的日志吗?
补充:.NET技术 , ASP.NET