C# 来自另一个存储过程的存储过程的行计数

C# 来自另一个存储过程的存储过程的行计数,c#,sql,stored-procedures,rowcount,executenonquery,C#,Sql,Stored Procedures,Rowcount,Executenonquery,我有各种存储过程。我需要一个存储过程来执行一个存储过程,然后只返回被调用过程返回的行数,我需要用c代码接收它 执行此操作的最佳方法是什么?假设您使用的是SQL Server,这可以从代码片段中看出,也许类似的方法适合您: exec('exec <your stored procedure goes here>; select @@RowCount') 昨天的大部分时间我都在调试一个神秘的情况,当您在insert中调用存储过程时会出现这种情况。您可以在子存储过程中尝试: 我们调用所有

我有各种存储过程。我需要一个存储过程来执行一个存储过程,然后只返回被调用过程返回的行数,我需要用c代码接收它


执行此操作的最佳方法是什么?

假设您使用的是SQL Server,这可以从代码片段中看出,也许类似的方法适合您:

exec('exec <your stored procedure goes here>; select @@RowCount')
昨天的大部分时间我都在调试一个神秘的情况,当您在insert中调用存储过程时会出现这种情况。

您可以在子存储过程中尝试:

我们调用所有其他SP的主存储过程

 DECLARE @RC int
 DECLARE @a int
 DECLARE @b int

EXECUTE @RC = [dbo].[PawanXX] 
   @a
  ,@b OUTPUT

SELECT @RC
相同的输出 ProcessName父级子级

共享草稿作业12作业03 股票草稿工作13工作58

2行受影响

二,


1行受影响

+1,用于@@rowcount。。。但他似乎表示希望以某种方式抑制被调用的存储过程返回的结果集,但它也会将行返回给我。在messeges上,我看到385行受影响,然后又是1行受影响无服务器管理研究有没有办法从存储过程返回的结果中获得一列。。就像从exec“存储过程”@KDB中选择id一样。我想不出一个办法。但是,因为它们是存储过程,为什么不使用一个可选的输出参数来进行行计数呢?你不必改变现有的代码,你就能得到你想要的。我会深入研究的。你能告诉我怎么用c读出来吗。谢谢你的回复。另一件事是,当我使用SQLServerManagementStudio执行存储过程时,会有一条消息说555行受到影响。我能用c语言得到那个信息吗?
declare @sql nvarchar(max) = N'exec '+@YOURQUERY + '; set @RowCount = @@RowCount';

exec sp_executesql @sql, N'@RowCount int output', @RowCount = RowCount output;
CREATE PROC PawanXX
(
 @a INT
,@b INT OUTPUT
)
AS
BEGIN

SELECT TOP 2 * FROM X

SET @b = @@ROWCOUNT

RETURN @b

END
GO
 DECLARE @RC int
 DECLARE @a int
 DECLARE @b int

EXECUTE @RC = [dbo].[PawanXX] 
   @a
  ,@b OUTPUT

SELECT @RC