想下面这段代码,在winform里执行什么问题都没有,用在web services 上就执行不过,到了update就出错,适配器,数据库连接在winform,web services的设置都一样,不知道问题出在哪,还请高手指点
System.Data.SqlClient.SqlTransaction mytrans;
this.sqlConnection1.Open();
mytrans=this.sqlConnection1.BeginTransaction();
this.sqlInsertCommand1.Transaction=mytrans;
this.sqlDeleteCommand1.Transaction=mytrans;
this.sqlUpdateCommand1.Transaction=mytrans;
this.sqlDeleteCommand2.Transaction=mytrans;
this.sqlInsertCommand2.Transaction=mytrans;
this.sqlUpdateCommand2.Transaction=mytrans;
try
{
this.sqlDataAdapter1.Update(ds.Tables[0]);
this.sqlDataAdapter2.Update(ds.Tables[1]);
mytrans.Commit();
}
catch(Exception ee)
{
mytrans.Rollback();
}
finally
{
this.sqlConnection1.Close();
}
System.Data.SqlClient.SqlTransaction mytrans;
this.sqlConnection1.Open();
mytrans=this.sqlConnection1.BeginTransaction();
this.sqlInsertCommand1.Transaction=mytrans;
this.sqlDeleteCommand1.Transaction=mytrans;
this.sqlUpdateCommand1.Transaction=mytrans;
this.sqlDeleteCommand2.Transaction=mytrans;
this.sqlInsertCommand2.Transaction=mytrans;
this.sqlUpdateCommand2.Transaction=mytrans;
try
{
this.sqlDataAdapter1.Update(ds.Tables[0]);
this.sqlDataAdapter2.Update(ds.Tables[1]);
mytrans.Commit();
}
catch(Exception ee)
{
mytrans.Rollback();
}
finally
{
this.sqlConnection1.Close();
}
this.sqlDataAdapter1.Update(ds.Tables[0]);
this.sqlDataAdapter2.Update(ds.Tables[1]);
执行是没问题的,结果也正确(不过没事务的话有时会导致Tables[0]更新了,Tables[1]没更新,要求是两个表一起更新)
myTrans = sqlConn.BeginTransaction(IsolationLevel.Serializable,
"MyTransaction");