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

如何判断数据库返回的String类型值是否为DBNull

解决DBNull转String的异常问题

在TypedDataSet中,当数据库字段为NULL时,直接访问对应的String属性会触发Conversion from type 'DBNull' to type 'String' is not valid.异常——因为TypedDataSet的属性getter会尝试自动将DBNull转换为String,这一步会直接抛出错误,所以不能直接通过属性本身做null判断。

正确的处理方式是使用TypedDataRow自动生成的Is[ColumnName]Null()方法,这是框架专门为TypedDataSet生成的字段空值检查方法,不会触发转换异常:

Dim dsResults As TypedDataSet
Dim dtResults As TypedDataSet.TypedDataTable
Dim result As TypedDataSet.TypedDataTable.TypedDataRow
Using data As New Bl.Method(MetaData) 
    dsResults = data.GetData(parameter)
    dtResults = dsResults.Typed
    result = dtResults.First
    If (Not result Is Nothing) Then
        ' 使用自动生成的IsNull方法判断字段是否为DBNull
        If Not result.IsCuttingLength1Null() Then
            TextBoxM1.Text = result.CuttingLength1
        End If
    End If
End Using

另外补充两种可选处理思路:

  • 若允许重新生成TypedDataSet,可以在设计器中勾选“将null值转换为空字符串”选项(具体位置依DataSet设计器版本而定,通常在DataSet的全局属性中),生成后的属性会直接返回空字符串而非触发异常。
  • 也可以用Try-Catch包裹属性访问,但这种方式代码冗余且效率低于IsNull方法,不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:07:14