C# 在不使用分布式事务的情况下优化此代码

C# 在不使用分布式事务的情况下优化此代码,c#,asp.net,C#,Asp.net,有没有一种方法可以使这段代码在不使用TransactionScope的情况下比现在更优化 public static bool DeleteItem(int cusID) { int result = 0; using (OleDbConnection myConnection = new OleDbConnection(AppConfiguration.ConnectionString)) { string de

有没有一种方法可以使这段代码在不使用TransactionScope的情况下比现在更优化

public static bool DeleteItem(int cusID)
    {
        int result = 0;

        using (OleDbConnection myConnection = new OleDbConnection(AppConfiguration.ConnectionString))
        {
            string delOrders= "DELETE FROM ORDERS WHERE cusID=?";
            string delCustomer= "DELETE FROM CUSTOMERS WHERE cusID=?";
            OleDbCommand myCommand = null;
            OleDbTransaction tran = null;

            try
            {
                myConnection.Open();
                tran=myConnection.BeginTransaction();


                using (myCommand = new OleDbCommand(delOrders, myConnection))
                {
                    myCommand.Parameters.Add("cusID", cusID);
                    myCommand.Transaction = tran;
                    myCommand.ExecuteNonQuery();
                }

                using (myCommand = new OleDbCommand(delCompany, myConnection))
                {
                    myCommand.Parameters.Add("cusID", cusID);
                    myCommand.Transaction = tran;
                    myCommand.ExecuteNonQuery();
                }
                tran.Commit();
                result = 1;
            }

            catch (OleDbException ex)
            {
                tran.Rollback();
                throw ex;
            }

            finally
            {
                myConnection.Close();
            }
        }
        return (result>0);
    }

如果在删除记录时数据库应该是一致的,为什么要避免事务?在这里删除事务基本上有可能使数据库变成不一致的形式

如果您只是想将其从代码中删除,那么可能需要在单个存储过程中尝试事务。这里有一些例子


如果删除记录时假设数据库是一致的,为什么要避免事务?在这里删除事务基本上有可能使数据库变成不一致的形式

如果您只是想将其从代码中删除,那么可能需要在单个存储过程中尝试事务。这里有一些例子


只是一个提示-您可以使用
bool result
而不是
int result
原因函数返回bool。

只是一个提示-您可以使用
bool result
而不是
int result
原因函数返回bool。

为什么?怎么了?速度慢吗?OleDbCommand ctor的FWIW:允许指定事务。我也更喜欢使用。谢谢pst。我刚被要求优化这段代码,你们能帮我在事务上使用阻塞吗?@Kragen,我刚被要求优化它。我没有看到太多需要优化的地方,所以我想我应该问问专家。删除行是一个非常快的操作,如果速度很慢,那就很奇怪了。如果是这样,可能表上没有cusID列的索引。为什么?怎么了?速度慢吗?OleDbCommand ctor的FWIW:允许指定事务。我也更喜欢使用。谢谢pst。我刚被要求优化这段代码,你们能帮我在事务上使用阻塞吗?@Kragen,我刚被要求优化它。我没有看到太多需要优化的地方,所以我想我应该问问专家。删除行是一个非常快的操作,如果速度很慢,那就很奇怪了。如果是这样,可能cusID列的表上没有索引。我不想删除该事务。只是我不想使用TransactionScope,因为出于某种原因它不能在DB2上工作。我想我已经被要求使用显式事务优化代码了。看看这些东西是否能进一步帮助你我不想删除事务。只是我不想使用TransactionScope,因为出于某种原因它不能在DB2上工作。我想我已经被要求使用显式事务来优化代码了。看看这些东西是否能进一步帮助您