2012-07-27 5 views
2

를 사용하여 카운트 나는읽는 방법 행 SqlDataReader 개체

저장 프로 시저가 행의 수를 반환하지만 여기에 행의 수를 읽을 수있는 방법을 잘 모르겠습니다되는 저장 프로 시저를 건너 왔어요 이 코드

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()) 
{ 
그것을 읽으려고

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

SELECT 'Return Value' = @return_value 

로 실행 당신은 단지 하나의 값을 튜닝하는 경우

+0

이에 대한 리더를 사용하려는 이유는 어떤 특별한 이유? 대신 sql 명령과 출력 매개 변수를 사용하여 수행 할 수 있습니다. –

답변

2

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

을 시도 할 다음에 무엇을해야할지 몰라, 난 당신이 ExecuteScalar

4

어디 때 SqlDataReader 개체를 사용할 수있는 포인트입니다 사용하는 것이 좋습니다 당신은 proc에서 하나의 값을 반환합니까?

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