Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net String.IsNullOrEmpty和Datarow.IsXnull_Vb.net_Datatable - Fatal编程技术网

Vb.net String.IsNullOrEmpty和Datarow.IsXnull

Vb.net String.IsNullOrEmpty和Datarow.IsXnull,vb.net,datatable,Vb.net,Datatable,如何改进此代码?导致这种冗长的原因是,我不能在数据行上使用string.IsNullOrEmpty,而是必须使用dr.IsHOUSENUMBERNull方法和string.IsNullOrEmpty来检查它是否为空。为什么会这样?数据库中的列有时为空,有时为空 我相信这可以写得更好: If Not dr.IsHOUSENUMBERNull Then If Not String.IsNullOrEmpty(dr.HOUSENUMBER) Then

如何改进此代码?导致这种冗长的原因是,我不能在数据行上使用string.IsNullOrEmpty,而是必须使用dr.IsHOUSENUMBERNull方法和string.IsNullOrEmpty来检查它是否为空。为什么会这样?数据库中的列有时为空,有时为空

我相信这可以写得更好:

     If Not dr.IsHOUSENUMBERNull Then
           If Not String.IsNullOrEmpty(dr.HOUSENUMBER) Then
                sbAddress.AppendLine(dr.HOUSENUMBER + " " + dr.ADDRESS1)
           Else
                sbAddress.AppendLine(dr.ADDRESS1)
           End If   
     Else
           sbAddress.AppendLine(dr.ADDRESS1)      
     End If

你可以这样做,稍微短一点:

 If dr.IsHOUSENUMBERNull OrElse String.IsNullOrEmpty(dr.HOUSENUMBER) Then
       sbAddress.AppendLine(dr.ADDRESS1) 
 Else     
       sbAddress.AppendLine(dr.HOUSENUMBER + " " + dr.ADDRESS1)
 End If
或者,如果您希望它更简洁,尽管在本例中可读性较差,我认为,请使用:


如果dr.HOUSENUMBER包含DBNull,则两个示例都将抛出一个excepton。您应该使用OrElse(短路)而不是Or@Alfred-感谢您提醒我为什么不再使用VB:)修复!
sb.Address.AppendLine(If(r.IsHOUSENUMBERNull OrElse String.IsNullOrEmpty(dr.HOUSENUMBER), dr.ADDRESS1, dr.HOUSENUMBER + " " + dr.ADDRESS1))