gpt4 book ai didi

c# - Microsoft.Practices.EnterpriseLibrary.Data : execute multiple statements in one transaction

转载 作者:太空狗 更新时间:2023-10-30 00:46:04 26 4
gpt4 key购买 nike

我最近开始使用一个现有项目,它使用 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);

最佳答案

您需要使用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;
}
}

请注意 ExecuteNonQuery 的第一个参数是要使用的事务。

更多信息 here .

关于c# - Microsoft.Practices.EnterpriseLibrary.Data : execute multiple statements in one transaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4223314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com