0

我在我的 c# 应用程序中执行一个存储过程,我应该使用 TransactionScope 将它包含在下面吗?

protected void rbl_SystemStatus_SelectedIndexChanged(object sender, EventArgs e)
{
    using (TransactionScope scope = new TransactionScope())
    {
        AdminData.myFunction();
        scope.Complete();
    }
}

myFunction() 在我的 SQL Server 数据库中执行一个存储过程,存储过程内容如下

UPDATE Table A SET...
UPDATE Table B SET ...
DELETE FROM Table C WHERE ...
4

1 回答 1

3

“我应该”是主观的和上下文相关的(例如,它可能未启用;或者您可能使用基于连接的事务;或者您可能不需要任何事务);但这当然是您可以使用的选项。是否“如下”取决于创建/打开连接的确切位置,因为连接只会在事务范围内自动登记,它们是在事务范围内初始化。如果连接是在内部创建/打开的myFunction,那么它应该可以工作(警告:除非连接字符串已Enlist明确设置为 false)。

于 2013-07-18T06:42:27.423 回答