【问题标题】:Difference between nothing and system.DBNullnone 和 system.DBNull 之间的区别
【发布时间】:2013-01-30 09:43:52
【问题描述】:

我在 VB.NET 中工作,我想知道 NothingSystem.DBNull 之间的区别。

当我当时触发保存查询时,我在运行时从网格中给出值,如下所示:

gvMain.Rows(j).Cells("Brand").Value.ToString()

但是当它的值为Nothing 时它会显示错误,而当它的值为System.DBnull 时它会完美运行。

在这种情况下该怎么办?
提前致谢

【问题讨论】:

标签: vb.net winforms winapp


【解决方案1】:

关键字Nothing用于指定或指定一个引用类型的var没有指向任何东西,没有为这个var实例化对象。

另一方面,DBNull.Value 是一个对象,用于指出DataBase 的某个字段的类型为空值。

【讨论】:

    【解决方案2】:

    Nothing 的类型为 System.Object.

    它代表任何数据类型的默认值。

    DBNull.Value 的类型为 System.DBNull

    如果某些东西显示为System.DBNull,这意味着即使它没有值,它也有一个有效的指针。您可能已经发现,它不能转换为字符串、整数等。您必须进行检查(最好使用IsDBNull

    If IsDBNull(gvMain.Rows(j).Cells("Brand").Value) Then
        Return String.Empty
    Else
        Return gvMain.Rows(j).Cells("Brand").Value.ToString().Trim()
    End If
    

    【讨论】:

    • 您的示例应该使用If 而不是IIf 是最新的。 IIf 没有短路。
    • 我的意思是使用ternary If
    猜你喜欢
    • 2010-09-06
    • 2013-06-19
    • 2016-12-21
    • 2017-01-11
    • 2019-08-23
    • 2013-09-06
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    相关资源
    最近更新 更多