asp.net事务咋不回滚呀,我操作多表即有插入也有更新,必须保证完整性
asp.net事务咋不回滚呀,我操作多表即有插入也有更新,必须保证完整性,我ASP.NET中有类似拼接的代码
pisql += " update YSFEE SET I_ISSF=1,I_ShCharge='" + ((TextBox)GridViewYCXFY.Rows[i].FindControl("c")).Text.ToString().Trim() + "' WHERE I_ID='" + GridViewYCXFY.DataKeys[i].Value.ToString().Trim() + "' ";
pisql += @" INSERT INTO ONEOFF (O_ID,O_DJID,O_FID,O_PRICE,O_COUNT,O_SDATE,O_MON,O_ZNMON,O_TOTAL,O_STATE,O_ISRETURN,O_REMARK,O_DEL,W_NAME,F_CHARGEITEMID,F_YSZNJ,O_Charge,AccoutPer)VALUES(replace(newid(),'-',''),'" + str + @"','" +
((Literal)GridViewYCXFY.Rows[i].FindControl("fid")).Text.ToString().Trim() + @"','" +
((TextBox)GridViewYCXFY.Rows[i].FindControl("c1")).Text.ToString().Trim() + @"','" +
((TextBox)GridViewYCXFY.Rows[i].FindControl("c2")).Text.ToString().Trim()+@"','"+
DateTime.Now.ToString("yyyy-MM-dd") + @"','" +
((TextBox)GridViewYCXFY.Rows[i].FindControl("c")).Text.ToString().Trim() + @"','0','" +
((TextBox)GridViewYCXFY.Rows[i].FindControl("c")).Text.ToString().Trim() + @"','0','" + result + "','" +
((Literal)GridViewYCXFY.Rows[i].FindControl("TxtRemark")).Text.ToString().Trim() + "','0','" +
((Literal)GridViewYCXFY.Rows[i].FindControl("chargeName")).Text.ToString().Trim() + "','" +
GridViewYCXFY.DataKeys[i].Value.ToString().Trim() + "',0,'" + ((TextBox)GridViewYCXFY.Rows[i].FindControl("c")).Text.ToString().Trim() + "','" + tbKJTime.Text.ToString().Trim() + "')";
qfdj += GridViewYCXFY.DataKeys[i].Value.ToString().Trim() + ",";
da.Begin();//事务的开始
da.ExecuteNonQuery(pisql);//执行拼接SQL方法
da.Commit();//事务的提交
catch
{
da.Rollback();//事务的回滚
-------很奇怪当操作过程中,浏览器崩溃了,insert都插入了,但是update 都没执行,请高手给予指点,我仔细检查了好几遍代码,不存在语法问题错误,封装类方法也么有问题。
public void Begin()
{
sqlt = conn.BeginTransaction();
com.Transaction = sqlt;
}
public void Rollback()
{
try
{
sqlt.Rollback();
}
finally
{
conn.Close();
sqlt.Dispose();
}
}
public void Commit()
{
//try
//{
sqlt.Commit();
//}
//finally
//{
// conn.Close();
// sqlt.Dispose();
//}
}