2013-07-09 4 views
5

VB.net에서 후반 부분을 평가하지 못하도록 올바르게 작성했다고 생각합니다.첫 번째 부분이 null 인 경우 if 문 중 두 번째 부분을 방지합니다.

하면 (. (myDataSet2 IsNot Nothing)이 아니면 myDataSet2.Tables ("CurData") Rows.Count> 0)

는 두 번째 expresion을 생략하지 않는다 그러나

"myDataSet2 : 그것은 다음과 같습니다 . 테이블 ("CurData"). Rows.Count> 0 "원하는대로.

어떻게 변경해야합니까?

+0

내 대답에 OrElse를 사용하라고했지만 단락 논리 AND를 원하고있을 것입니다. 맞습니까? 이 경우 AndAlso를 사용하십시오. 데이터 세트가 아무 것도 아니라는 것을 확인하는 것이 중요하지 않은 경우, 그렇지 않으면 (데이터 세트가 아무 것도 아니므로) 존재하지 않는 데이터 세트의 일부 속성을 확인하는 것은 잘못된 것입니다. 그렇게하면 null 참조가 생깁니다. –

+0

예, 맞습니다. 정말로하고 싶은 것은'AndAlso'입니다! –

답변

8

OrElse 연산자를 사용하십시오.

If myDataSet2 IsNot Nothing OrElse myDataSet2.Tables("CurData").Rows.Count > 0 

편집 : 원래 질문에 대한 내 의견을 참조하십시오. myDataSet2 null가 아닌 경우 확인합니다 그

If myDataSet2 IsNot Nothing AndAlso myDataSet2.Tables("CurData").Rows.Count > 0 

: 당신은 아마 찾고 있습니다. 그것이 아니라고 가정하면 적어도 하나의 행이 있는지 확인합니다. 그것이 널이면 두 번째 조건은 점검되지 않습니다.

4

첫 번째 if 절에 두 번째 문을 입력해야합니다. 이처럼

:

지금 모두가 평가하고 그 중 하나에 해당하는 경우 귀하의 경우 절의 내용이 실행됩니다으로
If(statement1) then 
    If(statemtent2) then 
    Else 
    End if 
Else 
End If 

.