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