在事務中呼叫N個儲存過程,但這些儲存過程都是有寫事務的
阿新 • • 發佈:2019-02-14
SqlTransaction myTrans = sqlconn.BeginTransaction();
SqlCommand sqlcomm =new SqlCommand();
sqlcomm.Transaction = myTrans;
try
{
sqlcomm.CommandText ="sp_proctestpara";//這個儲存過程中是有事力提交的 sqlcomm.Parameters.Add("@txtName", SqlDbType.NVarChar, 50);
sqlcomm.Parameters["@txtName"].Value =this.txtName.Text;
SqlDataReader reader1 = sqlcomm.ExecuteReader();
reader1.Close();
sqlcomm.Parameters.Clear();
sqlcomm.CommandText ="testsp";//現在在呼叫這個事條的時候出錯,所以我的事務回滾,但上面的sp_proctestpara回滾不了,那這時要怎麼辦 sqlcomm.Connection = sqlconn;
sqlcomm.CommandType = CommandType.StoredProcedure;
sqlcomm.ExecuteNonQuery();
myTrans.Commit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
myTrans.Rollback();
Response.Write( "sorry!");
}
finally
{
sqlconn.Close();
dsdb.Close();
}