Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对多个方法C使用单个事务#_C#_Ms Access - Fatal编程技术网

C# 对多个方法C使用单个事务#

C# 对多个方法C使用单个事务#,c#,ms-access,C#,Ms Access,假设我有一个Insert按钮,其中有多个方法,它们在数据库中读取、插入和更新等。是否可以对所有这些被调用的方法使用单个事务如: private void method_A(){/* doing tons of db stuff */} private void method_B(){/*...*/} private void method_C(){/*...*/} //etc protected void Insert_OnClick(object se

假设我有一个Insert按钮,其中有多个方法,它们在数据库中读取、插入和更新等。是否可以对所有这些被调用的方法使用单个事务如:

    private void method_A(){/* doing tons of db stuff */}
    private void method_B(){/*...*/}
    private void method_C(){/*...*/}

//etc

       protected void Insert_OnClick(object sender, EventArgs e)
       {
        //begin transaction

        Method_A();

        Method_B();

        Method_C();

        //end transaction


        }
这条路可行吗?以前从未使用过事务。
顺便说一句,如果有必要,请使用MS Access db

不确定Access是否接受事务,但您可以将调用包装在
TransactionScope
中。将范围内的所有数据库活动隐式添加到事务:

protected void Insert_OnClick(object sender, EventArgs e)
{
    using(TransactionScope tran = new TransactionScope())
    {
        Method_A();
        Method_B();
        Method_C();

        tran.Complete();
    }
}

不确定Access是否接受事务,但您可以将调用包装在
TransactionScope
中。将范围内的所有数据库活动隐式添加到事务:

protected void Insert_OnClick(object sender, EventArgs e)
{
    using(TransactionScope tran = new TransactionScope())
    {
        Method_A();
        Method_B();
        Method_C();

        tran.Complete();
    }
}

是的,您可以通过创建事务实例并将其传递到需要使用它的任何方法来使用单个事务。根据您提供的代码演示的一些psuedo代码:还有一个链接:


是的,您可以通过创建事务实例并将其传递到需要使用它的任何方法来使用单个事务。根据您提供的代码演示的一些psuedo代码:还有一个链接:


抱歉,回复太晚,首先我该如何使用
TransactionScope
?当我在VisualStudio上调用它时,它会变成红色。我几乎找不到这方面的任何信息。我尝试使用System.Transactions.TransactionScope使用
也是。@Nyprez您是否在项目中添加了
Sytste.Transactions
作为参考?(这与仅使用System.Transactions添加
不同;
@D Stanley TransactionScope不适用于Mc Access。但是,感谢您提供了一个使用sql server等事务的好例子。很抱歉,回复太晚了,首先我该如何使用
TransactionScope
?当我在visual studio上调用它时,它会变成红色。我很难理解。)我很难找到任何关于这方面的信息。我也尝试了使用System.Transactions.TransactionScope;
。@Nyprez您是否在项目中添加了
Sytste.Transactions
作为参考?(这与仅使用System.Transactions添加
不同;
@D Stanley TransactionScope不适用于Mc Access。但是,感谢您提供了一个使用sql server的事务示例。很抱歉回复太晚,但是我如何接收方法参数中的
命令
参数?很抱歉回复太晚,b但是我如何接收methods参数中的
命令
参数?