gridview问题 catch语句是程序有异常时才执行的啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的意思是不是说如果插入成功但没更新的话就.rollback? 那我这个应该怎么弄?我是想gridview里有一条不成功,就不让他执行sql 语句,直接跳到catch句块 你的意思是不是说如果插入成功但没更新的话就.rollback?,是这个意思 不明白你说的"如果gridview 里有多条数据,有些是成功的,有些是不成功"是什么意思 不明白你说的"如果gridview 里有多条数据,有些是成功的,有些是不成功"是什么意思 myCommand.ExecuteNonQuery(); 判断这个东西的返回值~决定是否回滚PS:别凡事指望try catch,一来效率低,二来,这里貌似也没发生异常啊,不能这么等它catch if(){ //插入和更新都成功的话 Commit(); }else{ .rollback();}//写法好多 catch (SqlException ex) 这里只捕获SqlException类型的异常,其他类型的不管改成:catch (Exception ex) 哪里,你可以 throw new Excepiton("错误描述"); 自定义异常这样不就行了吗! if() { Commit(); } else { .rollback(); } if 里要写两句 myCommand.ExecuteNonQuery(); 吗我不懂应该怎么写,我试过如果写一个myCommand.ExecuteNonQuery(); 他就有一句sql不执行!像你这样的话,是不是有一条不成功的就连同那条成功的一起回滚了? SqlConnection myConnection = new SqlConnection(@"server=NTXDRJ\SQLEXPRESS11;uid=sa;pwd=sa;database=KUCGL"); myConnection.Open(); SqlTransaction myTrans = myConnection.BeginTransaction(); SqlCommand myCommand = new SqlCommand("", myConnection); myCommand.Transaction = myTrans; try { myCommand.CommandText = "insert into caittemp(bh,hpbm,sl,dj,je) values ('" + this.DanHTextBox.Text + "','" + HuoPBM + "','" + ShuL + "','" + JiaQJ + "','" + JingE + "')"; count = myCommand.ExecuteNonQuery(); myCommand.CommandText = "update goods set kcsl='" + KuCSL + "',kcje='" + KuCJE + "',jqj='" + JiaQJ1 + "' where hpbm='" + Request.QueryString["Source"] + "'"; count1= myCommand.ExecuteNonQuery(); myCommand.ExecuteNonQuery(); if (count > 0 && count1 > 0) { myTrans.Commit(); RegisterStartupScript("message", "<script>alert('数据操作成功');</script>"); } else { RegisterStartupScript("message", "<script>alert('数据操作失败');</script>"); myTrans.Rollback(); } } catch (Exception ex) { Response.Write(ex.ToString()); RegisterStartupScript("message", "<script>alert('数据操作失败');</script>"); myTrans.Rollback(); }我重新改了,还是没有我想要的结果,各位再帮我看看哪里出错了? 你搞错了吧,try——catch是用来捕捉异常的事务回滚的话@@error是0 的,没有异常应该是用ExecuteNonQuery()的结果-影响的记录数来判断是否成功 实现是当然可以实现但是使用try catch的效率远不如if只要自己的逻辑清晰了,if也一样可以安全。Just try~ 请问asp.net中怎么动态添加ul,li列表哪? 类库变成文件夹 Response.Redirect 服务器内存问题 Microsoft IE Web控件?? 如何在postback后,控制datagrid的数据行的显示位置? 又一算法求解 Vs2002中有没有类似模版向导的功能? 关于水晶报表 多个的aspx文件都要用同样的常量,结构,怎样做? 一个gridview要显示两张表的内容 一个简单问题,请教一下!
{
//插入和更新都成功的话
Commit();
}
else
{
.rollback();
}
//写法好多
哪里,你可以 throw new Excepiton("错误描述"); 自定义异常
这样不就行了吗!
{
Commit();
}
else
{
.rollback();
}
if 里要写两句 myCommand.ExecuteNonQuery(); 吗
我不懂应该怎么写,我试过如果写一个myCommand.ExecuteNonQuery(); 他就有一句sql不执行!像你这样的话,是不是有一条不成功的就连同那条成功的一起回滚了?
myConnection.Open();
SqlTransaction myTrans = myConnection.BeginTransaction();
SqlCommand myCommand = new SqlCommand("", myConnection);
myCommand.Transaction = myTrans;
try
{
myCommand.CommandText = "insert into caittemp(bh,hpbm,sl,dj,je) values ('" + this.DanHTextBox.Text + "','" + HuoPBM + "','" + ShuL + "','" + JiaQJ + "','" + JingE + "')";
count = myCommand.ExecuteNonQuery();
myCommand.CommandText = "update goods set kcsl='" + KuCSL + "',kcje='" + KuCJE + "',jqj='" + JiaQJ1 + "' where hpbm='" + Request.QueryString["Source"] + "'";
count1= myCommand.ExecuteNonQuery();
myCommand.ExecuteNonQuery();
if (count > 0 && count1 > 0)
{
myTrans.Commit();
RegisterStartupScript("message", "<script>alert('数据操作成功');</script>");
}
else
{
RegisterStartupScript("message", "<script>alert('数据操作失败');</script>");
myTrans.Rollback();
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
RegisterStartupScript("message", "<script>alert('数据操作失败');</script>");
myTrans.Rollback();
}
我重新改了,还是没有我想要的结果,各位再帮我看看哪里出错了?
事务回滚的话@@error是0 的,没有异常
应该是用ExecuteNonQuery()的结果-影响的记录数来判断是否成功
但是使用try catch的效率远不如if
只要自己的逻辑清晰了,if也一样可以安全。
Just try~