[英]Conversion from type 'DBNull' to type 'Integer' is not valid. using asp.net and object data source
[英]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.