2014-10-07 7 views
0

코드는 조건 만 확인하고 조건을 무시하고 IsDBNull을 사용하는 동안 잘못된 작업을 수행합니다. "if"조건이 실패하면 다른 조건으로 이동하기를 원합니다.If 문을 사용하여 IsDBNull 확인

while (rd.Read()) 
{ 
    if (!rd.IsDBNull(0)) 
    { 
     //update table 
    } 
    else 
    { 
     //update table 
    } 
} 

사람은 조건이 거짓 경우는 if 문은 항상 else로 이동합니다이 감사

답변

1

레코드에 행이 있는지 확인 하시겠습니까? 그렇지 않은 경우 실제로는 절대 호출되지 않을 때 if이 실패한 것으로 나타날 수 있습니다.

HasRows 속성을 사용하여 확인할 수 있습니다.

+0

고마워, 나는 HasRows를 사용하고 일했다. –

1

에 나를 도울 수 있습니다.

테이블을 볼 수 없기 때문에 항상 열을 읽으므로 첫 번째 열 (일반적으로 PK)이 null이 아닐 수 있습니다.

더 이상 읽을 행이 없으면 루프가 중지됨을 기억하십시오. 그리고 당신이 검사하는 것은 첫 번째 열이 null 인 경우입니다 (보시다시피 절대로 알 수없는 것처럼)

if 문이 작동하고 항상 효과가 있습니다.

+0

값이 null 일 때 "while (rd.read())"에서 코드가 종료됩니다. 어떻게 피할 수 있습니까? if 문을 직접 사용했지만 데이터가 없을 때 읽을 잘못된 시도라고 말합니다. .. –

+0

코드가 값을 반환하지 않음을 알게되었고 HasRows를 사용하여 해결했습니다. 고마워 .. –

관련 문제