Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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# 如何在foreach循环中调用多个存储过程时实现类似于事务的逻辑_C#_Sql_Asp.net_Asp.net Core - Fatal编程技术网

C# 如何在foreach循环中调用多个存储过程时实现类似于事务的逻辑

C# 如何在foreach循环中调用多个存储过程时实现类似于事务的逻辑,c#,sql,asp.net,asp.net-core,C#,Sql,Asp.net,Asp.net Core,我有类似于下面的代码,其中我需要循环多个存储过程,并独立执行每个存储过程。我的要求是,如果任何存储过程抛出异常,我也需要回滚其他存储过程的操作 我们已经在每个存储过程中实现了事务,它将只回滚特定存储过程操作中的数据 如果任何存储过程引发异常,我还想回滚其他存储过程操作 我该怎么做 var multipleProcNamesList = new List<string>(); multipleProcNamesList.Add("Usp_InsertData"); multipleP

我有类似于下面的代码,其中我需要循环多个存储过程,并独立执行每个存储过程。我的要求是,如果任何存储过程抛出异常,我也需要回滚其他存储过程的操作

我们已经在每个存储过程中实现了事务,它将只回滚特定存储过程操作中的数据

如果任何存储过程引发异常,我还想回滚其他存储过程操作

我该怎么做

var multipleProcNamesList = new List<string>();

multipleProcNamesList.Add("Usp_InsertData");
multipleProcNamesList.Add("Usp_DeleteData");
multipleProcNamesList.Add("Usp_UpdateData");

foreach (string procName in multipleProcNamesList)
{
    // sending this current procedure to azure logic app for call respective stored procedure
}
var multipleProcNamesList=new List();
添加(“Usp_InsertData”);
multipleProcNameList.Add(“Usp_DeleteData”);
添加(“Usp_UpdateData”);
foreach(multipleProcNamesList中的字符串procName)
{
//将此当前过程发送到azure logic app以调用相应的存储过程
}

此处的可能重复我没有使用SqlCommand,而是通过http调用通过逻辑应用程序调用存储的proc。如果您无法直接访问该proc,则无法回滚它。你需要修改逻辑应用程序。要么这样,要么你修改SQL,这样你就有了一个主存储过程,它调用所有其他的主存储过程,并将这些调用封装在主存储过程中的事务中。@ADyson,我也有同样的想法。我现在就用主存储过程。