5

我在 VB.net 中有一个声明,我认为我写的正确,以防止下半部分被评估。它看起来像这样:

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

但是,它不会像我想要的那样跳过第二个表达式“myDataSet2.Tables("CurData").Rows.Count > 0"。

我应该改变什么?

4

2 回答 2

8

使用 OrElse 运算符。

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

编辑:请参阅我对您原始问题的评论。您可能正在寻找:

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

这将检查 myDataSet2 是否不为空。假设不是,它将检查是否至少有一行。如果它为空,则不会检查第二个条件。

于 2013-07-09T15:28:08.850 回答
3

您需要将第二个语句放入第一个 if 子句中。

像这样:

If(statement1) then
   If(statemtent2) then
   Else
   End if
Else
End If

因为现在两者都被评估,如果其中一个为真,则 if 子句中的内容将被执行。

于 2013-07-09T15:26:22.757 回答