You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Basic中OR表达式语法及Dataset结果校验问题

问题1:Visual Basic中实现短路逻辑或的方法

Visual Basic中提供了专门的短路逻辑运算符OrElse,将你原有代码里的非短路运算符Or替换为OrElse,就能实现「前序条件判定为真时,直接停止执行后续表达式」的效果,对应短路逻辑与的运算符为AndAlso。
修改后的校验代码如下:

If ((testDataset Is Nothing) OrElse (testDataset.Tables Is Nothing) OrElse testDataset.Tables.Count = 0 _
    OrElse (testDataset.Tables.Item(0).Rows Is Nothing) OrElse (testDataset.Tables.Item(0).Rows.Count = 0) _
    OrElse (testDataset.Tables.Item(0).Rows(0) Is Nothing)) Then
    MessageBox.Show("Dataset has no results!", "Database Query Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Return False
End If

该写法可以避免前序已经判定对象为空时,后续访问对象属性抛出空引用异常的问题。


问题2:校验Dataset包含至少一行有效数据且存在指定列

在上述基础有效性校验通过后,调用DataColumnCollection.Contains方法即可判断指定列是否存在,完整校验逻辑如下(示例中校验的列名为target_column,可替换为实际需要校验的列名):

' 基础数据有效性校验
If testDataset Is Nothing OrElse 
   testDataset.Tables Is Nothing OrElse 
   testDataset.Tables.Count = 0 OrElse 
   testDataset.Tables(0).Rows Is Nothing OrElse 
   testDataset.Tables(0).Rows.Count = 0 OrElse 
   testDataset.Tables(0).Rows(0) Is Nothing Then
    MessageBox.Show("Dataset has no results!", "Database Query Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Return False
End If

' 追加指定列存在性校验
If Not testDataset.Tables(0).Columns.Contains("target_column") Then
    MessageBox.Show("指定列不存在!", "数据结构错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Return False
End If

' 校验全部通过
Return True

内容的提问来源于stack exchange,提问作者VSB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:36:01