簡體   English   中英

ASP.NET VB - 從類型'DBNull'到類型'String'的轉換無效

[英]ASP.NET VB - Conversion from type 'DBNull' to type 'String' is not valid

我有以下ASP.NET(VB)代碼:

    strLocation = CStr(q1("LocationName")) + " " + CStr(q1("LocationAddress")) + " " + CStr(q1("LocationCity"))

由於LocationCity為null:

我從類型'DBNull'到類型'String'的轉換無效。

有沒有辦法解決這個問題。

如果它只是LocationCity,我可能會做類似的事情:

    If IsDBNull(q1("LocationCity")) Then
        strLocation = ""
    Else
        strLocation = CStr(q1("LocationCity"))
    End If

我也嘗試過:

    strLocation = If(CStr(q1("LocationName")), "") + " " + If(CStr(q1("LocationAddress")), "") + " " + If(CStr(q1("LocationCity")), "")

但得到了相同的結果

在C#我通常會使用? 但不確定ASP.NET VB中的最佳方法

相當於C# ?? 在VB.NET中是IF運算符

strLocation = If(IsDBNull(q1("LocationCity")), "", CStr(q1("LocationCity")))

不要使用IIF功能,因為它已被棄用,不支持短路且不是類型安全的。

還看到C#的VB.NET等價嗎? 運營商? 相關信息

你可以使用If(IsDBNull(q1("propertyName")), "", CStr(q1("propertyName")))

或者,您可以實現您作為方法顯示的代碼塊,並為每個屬性調用該方法。 IMO,它會使您的代碼行比使用3個IIF語句更清晰

Function StringValue(q1 as Q1Type) as String
    If IsDBNull(q1("LocationCity")) Then   
        Return ""   
    Else   
        Return  CStr(q1("LocationCity"))   
    End If
End Function

strLocation = StringValue(q1("LocationName")) + " " + StringValue(q1("LocationAddress")) + " " + StringValue(q1("LocationCity"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM