コマンドに割り当てられた接続がローカル保留中のトランザクションにある場合、ExecuteNonQueryはコマンドにトランザクションの所有を要求します.コマンドのTransactionプロパティはまだ初期化されていません
1360 ワード
conn.BeginTransaction() , conn Command ,
:
DbConnection dbc = database.CreateConnection();
DbTransaction dbtt = null;
try
{
dbc.Open();
dbtt = dbc.BeginTransaction();
DbCommand storedProcCommand = this.database.GetStoredProcCommand("sp_cc_Category_Create");
storedProcCommand.Connection = dbc;// command dbc , dbc dbtt
storedProcCommand.Transaction = dbtt;//
storedProcCommand.ExecuteNonQuery(); //
// command , ,
DbCommand storedProcCommandnew = this.database.GetStoredProcCommand("sp_cc_Category_update");
storedProcCommandnew .Connection = dbc;//
storedProcCommandnew .Transaction = dbtt;//
//storedProcCommand .ExecuteNonQuery(); // commond
storedProcCommandnew .ExecuteNonQuery(); // ,
dbtt.Commit();
}
catch
{
dbtt.Rollback();
}
finally
{
if (dbc.State == ConnectionState.Open)
dbc.Close();
}