ASP.NET VB - 从类型 'DBNull' 到类型 'String' 的转换无效

标签 asp.net vb.net

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

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

由于 LocationCity 为空:

我得到从类型“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 中的最佳方法

最佳答案

相当于 VB.NET 中的 C# ??IF Operator

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

请勿使用 IIF Function 因为它已被弃用,不支持短路并且类型不安全。

另请参阅Is there a VB.NET equivalent for C#'s ?? operator?相关信息

关于ASP.NET VB - 从类型 'DBNull' 到类型 'String' 的转换无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11830990/

相关文章:

javascript - 随机包含 8 个字母数字字符

vb.net - 在 Excel 范围内编辑值

asp.net - vb.net 单选按钮列表检查是否被选中

c# - ASP.NET ObjectDataSource 找不到具有参数的非泛型方法

c# - 请向 vb-er 解释 C# 语法

.net - 在多个 DLL 中拥有命名空间有什么影响?

javascript - JavaScript 脚本标记中的绝对路径

C# 转换回 var 类型?

javascript - 调用按钮单击gridview内的文件上传

mysql - 打开阅读器时如何在 VB 中打开执行查询?