Mic*_*hel 5 c# ado.net enterprise-library
我最近开始使用现有项目,它与Microsoft.Practices.EnterpriseLibrary.Data对象一起使用.
现在我想在一个事务中执行多个存储过程(1:n插入必须全部失败或成功)
但我不知道如何......
谁能帮我吗?
在这个项目中执行sp的典型代码如下所示:
Database oDatabase = DatabaseFactory.CreateDatabase(CONNECTION_STRING_KEY);
DbCommand oDbCommand = oDatabase.GetStoredProcCommand("upCustomer_Insert");
Int32 iCustomerKey = 0;
oDatabase.AddInParameter(oDbCommand, "Firstname", DbType.String, p_oCustomer.FirstName);
oDatabase.AddInParameter(oDbCommand, "Lastname", DbType.String, p_oCustomer.LastName);
oDatabase.ExecuteNonQuery(oDbCommand);
Run Code Online (Sandbox Code Playgroud)
你需要使用DbTransaction:
using (DbConnection connection = db.CreateConnection())
{
connection.Open();
DbTransaction transaction = connection.BeginTransaction();
try
{
db.ExecuteNonQuery(transaction, sp1);
db.ExecuteNonQuery(transaction, sp2);
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
注意ExecuteNonQuery的第一个参数是要使用的事务.
更多信息在这里.
| 归档时间: |
|
| 查看次数: |
9152 次 |
| 最近记录: |