C# 如何使用SqlDataReader读取行计数

C# 如何使用SqlDataReader读取行计数,c#,sql,stored-procedures,C#,Sql,Stored Procedures,我遇到了一个返回行数的存储过程,但不确定如何读取此处的行数 存储过程是: CREATE PROCEDURE [dbo].[Document_Exists] ( @Url varchar(255) ) AS SET NOCOUNT ON; SELECT COUNT(*) AS Rows FROM Document_Instances WHERE Url = @Url 执行为 EXEC @return_value = [dbo].[Document_E

我遇到了一个返回行数的存储过程,但不确定如何读取此处的行数

存储过程是:

CREATE PROCEDURE [dbo].[Document_Exists]
(
    @Url varchar(255)
)
AS
    SET NOCOUNT ON;

    SELECT COUNT(*) AS Rows 
    FROM Document_Instances 
    WHERE Url = @Url
执行为

EXEC @return_value = [dbo].[Document_Exists]
     @SourceSiteUrl = N'https://cc23.dev.com/portal'

SELECT 'Return Value' = @return_value
正在尝试使用此代码读取它

SqlCommand cmd1 = new SqlCommand("Document_Exists", conn);
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Parameters.Add(new SqlParameter("@Url", url));
SqlDataReader rdr1 = cmd.ExecuteReader();

while (rdr1.Read())
{
不知道下一步该做什么

试试看

int rows = 0;
if(rdr1.Read()) {
    rows = (int) rdr1["Rows"];
}

如果您只重新调整单个值,我建议您使用

当您从进程返回单个值时,使用SqlDataReader的点在哪里

SqlCommand cmd1 = new SqlCommand("Document_Exists", conn); 
cmd1.CommandType = CommandType.StoredProcedure; 
cmd1.Parameters.Add(new SqlParameter("@Url", url)); 
int rows = Convert.ToInt32(cmd.ExecuteScalar()); 
int rowCount=dataReader.Cast().Count();

您想为此使用读卡器的具体原因是什么?可以使用sql命令和输出参数来代替。
SqlCommand cmd1 = new SqlCommand("Document_Exists", conn); 
cmd1.CommandType = CommandType.StoredProcedure; 
cmd1.Parameters.Add(new SqlParameter("@Url", url)); 
int rows = Convert.ToInt32(cmd.ExecuteScalar()); 
int rowCount = dataReader.Cast<object>().Count();