簡體   English   中英

如何使用SqlDataReader讀取行數

[英]How to read rows count using SqlDataReader

我遇到了一個返回行數的存儲過程,但我不知道如何在這里讀取行數,

存儲過程是:

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())
{

不知道接下來該做什么

從proc中返回單個值時,使用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 rows = 0;
if(rdr1.Read()) {
    rows = (int) rdr1["Rows"];
}
int totalRows=0;
if(rdr1.Read())
{
    totalRows=  rdr1.GetInt32(rdr1.GetOrdinal("Rows"));
}

如果您只重新調整單個值,我建議您使用ExecuteScalar

int rowCount = dataReader.Cast<object>().Count();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM