问题描述
我查执行后的记录,发现业绩工资重复加了,比如说今天应该加10元,他加了20元。可以保证在数据库中可发放的工资没有重复,已经两天了,在大约200多人中,每次都是有2个人的工资重复加了,而且是不同的人,好像是随机的,各位大侠,帮我找找原因吧,谢谢。intMoney;DateTimeS_Begin=DateTime.Now;//查询所有可发放的工资DataSetds=SqlHelper.ExecuteDateSet(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,"select(Wage_Temp_Money*Wage_Temp_Tax)asMoney,Wage_Temp_User_Id,User_TuJianfrom[Wage_Temp]innerjoin[User]onWage_Temp_User_Id=User_Idwheredatediff(day,getdate(),Wage_Temp_Date_End)>0orderbyWage_Temp_Id",null);for(inti=0;i<ds.Tables[0].Rows.Count;i++){Money=0;Money=Convert.ToInt32(ds.Tables[0].Rows[i]["Money"])*Days;//更新业绩工资SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,"update[User]setUser_Dzb=User_Dzb+"+Money+"whereUser_Id="+ds.Tables[0].Rows[i]["Wage_Temp_User_Id"].ToString(),null);//更新直推工资SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,"update[User]setUser_Dzb=User_Dzb+"+Money+"*0.2whereUser_Id="+ds.Tables[0].Rows[i]["User_TuJian"].ToString(),null);}
解决方案
解决方案二:
是不是按钮点击了2次啊
解决方案三:
你应该像这里的回帖的功能,点击一次按钮不可再点
解决方案四:
引用2楼的回复:
你应该像这里的回帖的功能,点击一次按钮不可再点
解决方案五:
ds里某个人重复了
解决方案六:
要么跟触发事件有关系。比如触发了两次。或者这个方法被调用了两次。要么是你查询语句查出的结果中本来就有重复的数据之类的。
解决方案七:
我是放在ISPosback里的,肯定是执行了一次,不然的话,其它人的工资了加了两次了
解决方案八:
ds查询出来的结果,我也对过,没有重复的,如果有重复的话,那明天重复加的那个人也是今天重复加的人才对,可是昨天复杂加的人和今天重复加的人不是同两个人,所以觉得非常奇怪,望大侠们看看
解决方案九:
ds.Tables[0].Rows判断下它的状态?
解决方案十:
引用1楼的回复:
是不是按钮点击了2次啊
楼主先照着这个解决下看看吧,应该是这个原因
解决方案十一:
//更新业绩工资SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,"update[User]setUser_Dzb=User_Dzb+"+Money+"whereUser_Id="+ds.Tables[0].Rows[i]["Wage_Temp_User_Id"].ToString(),null);//更新直推工资SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,"update[User]setUser_Dzb=User_Dzb+"+Money+"*0.2whereUser_Id="+ds.Tables[0].Rows[i]["User_TuJian"].ToString(),null);这两句你合并成一个SQL执行!
解决方案十二:
引用10楼的回复:
//更新业绩工资SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,"update[User]setUser_Dzb=User_Dzb+"+Money+"whereUser_Id="+ds.Tables[0].Rows[i]["Wage_Temp……
这两个句话执行的是不同的用户ID,不好归并,就是归并了怕是对这个问题无济于事吧
解决方案十三:
既然ds没有重复那么就是说明SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,"update[User]setUser_Dzb=User_Dzb+"+Money+"whereUser_Id="+ds.Tables[0].Rows[i]["Wage_Temp_User_Id"].ToString(),null);语句多执行了2两次,而且是随机的可以不可以把SqlHelper.ExecuteNonQuery函数贴出来
解决方案十四:
还有一种可能就是ds中已经有Money值出错了
解决方案十五:
既然你无法判断哪里出问题了那就断点调试吧这功能不能浪费掉虽然浪费的时间比较多但至少可以找到问题关键
解决方案:
update语句拼在一起执行一个就行了./////////////////////////500人淘宝客交流QQ群:185781220