C# 需要使用SQLServer数据库执行多个事务

C# 需要使用SQLServer数据库执行多个事务,c#,C#,在这种情况下,我需要从表中检索记录,并使用这些值作为存储过程的参数传递。存储过程将重新运行一行,我需要再次使用存储过程返回的值并更新其他表。请给我一个示例C#代码来实现这个场景。任何帮助都将被占用 提前感谢, Pradeep您可以尝试以下方法: createPROCEDURE MultipleTransaction AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from

在这种情况下,我需要从表中检索记录,并使用这些值作为存储过程的参数传递。存储过程将重新运行一行,我需要再次使用存储过程返回的值并更新其他表。请给我一个示例C#代码来实现这个场景。任何帮助都将被占用

提前感谢,

Pradeep

您可以尝试以下方法:

createPROCEDURE MultipleTransaction

    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
       declare @a int;
      set @a=1;
        -- Insert statements for procedure here
        while((select distinct   id from a  where id =@a) is not null )
        begin
         declare @name varchar(100)
         declare @id int

         set @name =(select distinct   name2 from a  where id =@a)
         set @id =(select distinct   id from a  where id =@a)

         exec   GetRows  @name,@id -- calling another procedure
       set @a =@a+1;
        end
    END


create PROCEDURE  GetRows  
     (@Para varchar(100),@id varchar(10)  )
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
     UPDATE [Cube].[dbo].[b]
   SET [name1] = @Para
 WHERE  id =@id
END

好的,这只是另一个“Giv'me ze codez”-问题…我知道这可以通过创建新的存储过程来实现,但不幸的是,我没有特权创建任何存储过程,我只需要通过c#代码来实现。在c#代码中这样做真的很糟糕,因为您正在生成不必要的网络往返。也许你会和一个有权做正确事情的人交谈……谢谢你的回答,但这在我的场景中是不可能的,因为我正在开发一个使用产品数据的插件。我无法创建表或过程。而不是proc。->您可以动态生成sql语句,并在sql server上执行该语句。对于普通的SqlCommand对象,这应该是可能的。。。顺便说一下,SQL代码可以与过程体的代码相同。