2011-04-06 5 views
0

sqldatareader가 null인지 확인하고 싶습니다.sqldatareader 오류

는 DataReader를 내 값을 확인하려고하지만 동안
if (x[k]!= DBNull.Value) 
{ 
    box.Text = Convert.ToString(x[k++]); 

    if ((box.Text) != "") 
    current[j - 1] = Convert.ToDouble(box.Text); 
    else current[j - 1] = 0; 

    box.Enabled = false; 
} 

, 그것은 오류가 발생합니다, "데이터가 존재하지 않을 때 데이터를 읽을 수있는 잘못된 시도": 그래서 다음 코드를 시도했다. 데이터가 있는지 여부를 확인하려면 어떻게해야합니까? !! 도와주세요. 여기에 x는 sqldatareader입니다. SqlDataReader x = cmd.ExecuteReader(); 하고 cmd를 선별 커멘드입니다 ..

답변

0

당신은 널 체크를 할 수 있으며, 데이터 행에 액세스하기 전에 행 삽입했습니다. 이

if(null != x && x.HasRows) 
{ 
//Your code 
} 
+0

하지만 여전히 같은 오류를 보여주는 등의

. !! !! if 조건이 충족되었지만 행을 실행할 수 없습니다. box.Text = Convert.ToString (x [k ++]); x의 fieldcount가 6을 표시하지만 x [k]를 읽을 수없는 이유는 무엇입니까? k = 0 일 때도 마찬가지입니다. – scooby

+0

x [k]의 값을 Quickwatch로 시도해보십시오. – Anuraj

+0

datareader에 저장된 값을 조사 할 수 있습니까? 내 말은, x [0] 또는 x [1] 내의 값을 들여다 볼 방법이 없다고 생각합니다. – scooby

4

당신은 SqlDataReader.HasRows을 사용할 수 있습니다 - 그것이 사실 데이터의 적어도 하나 개의 행이 존재하는 경우, 또는 당신이 SqlDataReader.Read()를 사용하여 모든 결과를 통해 읽을 수 있습니다; 그래서 예를 들어

:

while(x.Read()) 
{ 
    //read stuff 
} 
관련 문제