当前位置:  开发笔记 > 后端 > 正文

如何在VB.NET中检查Null值

如何解决《如何在VB.NET中检查Null值》经验,为你挑选了5个好方法。

我有这个:

If String.IsNullOrEmpty(editTransactionRow.pay_id.ToString()) = False Then
    stTransactionPaymentID = editTransactionRow.pay_id 'Check for null value
End If

现在,什么时候editTransactionRow.pay_idNull Visual Basic抛出异常.这段代码有问题吗?



1> Garry Shutle..:

null在VB中相当于Nothing你的支票想要:

If editTransactionRow.pay_id IsNot Nothing Then
    stTransactionPaymentID = editTransactionRow.pay_id
End If

或者,如果您确实想要检查SQL null值:

If editTransactionRow.pay_id <> DbNull.Value Then
    ...
End If



2> Patrick Desj..:

editTransactionRow.pay_id是Null所以实际上你正在做:null.ToString()并且它无法执行.您需要检查editTransactionRow.pay_id而不是editTransactionRow.pay_id.ToString();

你的代码应该是(IF pay_id是一个字符串):

If String.IsNullOrEmpty(editTransactionRow.pay_id) = False Then
    stTransactionPaymentID = editTransactionRow.pay_id 'Check for null value
End If

如果pay_id是一个Integer而不是你可以检查它是否正常,没有String ...编辑,以显示它是否不是一个字符串:

If editTransactionRow.pay_id IsNot Nothing Then
    stTransactionPaymentID = editTransactionRow.pay_id 'Check for null value
End If

如果它来自数据库,您可以使用IsDBNull,但如果不是,请不要使用它.



3> Micah..:

如果您使用的是强类型数据集,那么您应该这样做:

If Not ediTransactionRow.Ispay_id1Null Then
    'Do processing here
End If

您收到错误是因为强类型数据集检索基础值并通过属性公开转换.例如,这里基本上是发生了什么:

Public Property pay_Id1 Then
   Get
     return DirectCast(me.GetValue("pay_Id1", short)
   End Get
   'Abbreviated for clarity
End Property

GetValue方法返回DBNull,无法将其转换为short.



4> Aaron G..:

您还可以使用IsDBNull函数:

If Not IsDBNull(editTransactionRow.pay_id) Then
...



5> 小智..:
If Not IsDBNull(dr(0)) Then
    use dr(0)
End If

不要使用= NothingIs Nothing,因为它无法检查数据行值是否为null.我试过了,我确保上面的代码有效.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有