巧虎做蛋糕视频:c#插入记录会偶尔失败,如何判断并处理?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/10 18:36:12
我有个asp.net+c# 的程序,处理asp提交的表单信息。成功后要往数据库里添加若干条记录,但是,每天总有那么几条语句好象是执行不完似的,前面的都可以添加上,后面的随机的出错,我里面没有任何的错误处理代码。请问我在哪里添加错误处理代码?
经常出错的数据库插入代码部分是:
if(data.IndexOf("成功充值") > 0)//充值成功了,开始记录数据
{
for (int i = 0; i < (sArray.Length-1); i++) //改写转入卡的状态( 先把所有的卡上的余额全部转换为0)
{
con.cmd("insert into ect_getlogs(num,ipaddress,another,datetime)values('"+sArray[i]+"','"+Request.ServerVariables["REMOTE_ADDR"].ToString()+"','"+testkahao+"购买了"+buynum+"张"+cardtypename+""+nametype+",帐号:"+Request.Form["ursname"].ToString()+"','"+datetime+"')",1);
con.cmd("update ect_stock set yuee=0,used=1,sellstatus=1 where number='"+sArray[i]+"'",1);
}
if(price < moneycount)//判断卡上的余额是不是有剩余,有的话,全部转换到第一张卡上去
{
moneycount = moneycount-price;
con.cmd("update ect_stock set yuee="+moneycount+",used=1,sellstatus=1 where number='"+sArray[0]+"'",1);
con.cmd("insert into ect_getlogs(num,ipaddress,another,datetime)values('"+sArray[0]+"','"+Request.ServerVariables["REMOTE_ADDR"].ToString()+"','"+testkahao+"购买了"+buynum+"张"+cardtypename+""+nametype+",帐号:"+Request.Form["ursname"].ToString()+"-----剩余"+moneycount+"元,转到此卡上','"+datetime+"')",1);
}
//对在线定单表写数据
con.cmd("update onlinebuy set opreat=1,czopuser='网易' where another='"+sArray[0]+"'",1);
con.cmd("insert into buylogs(userid,classid,sales,cardid,cardtypeid,thing,IPaddress,lr,money,mymoney,rtlprice,datetime,another,number,cardowner,isnetbank)values('一卡通',"+Session["classid"]+",'"+sArray[0]+"',0,"+pid+",0,'"+Request.ServerVariables["REMOTE_ADDR"].ToString()+"',0,"+price+","+price+","+price+",'"+datetime+"','"+testkahao+"购买了"+buynum+"张"+cardtypename+""+nametype+",帐号:"+Request.Form["ursname"].ToString()+"',"+buynum+",'system',1)",1);
con.dr.Close();
con.close();
请各位大虾,具体指点下,我是菜鸟,请给出具体代码 好吗。

那就用事务或存储过程来处理,
要成功都成功,要失败都失败

同意楼上的,用事务
在程序里用try……catch来控制事务