C# 对多个方法C使用单个事务#
假设我有一个Insert按钮,其中有多个方法,它们在数据库中读取、插入和更新等。是否可以对所有这些被调用的方法使用单个事务如: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
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参数中的命令
参数?