【问题标题】:Conversion from string "valor" to type 'Integer' is not valid in VB.NET从字符串“valor”到类型“Integer”的转换在 VB.NET 中无效
【发布时间】:2023-03-28 16:18:01
【问题描述】:

我是一名 C# 程序员,但现在我必须编写 VB.NET 代码,并且我遇到了试图将这行 C# 代码转换为 VB.NET 的情况

我想要检查通过 MySQLDataReader 获得的值是否为 DBNull,在 C# 中我使用它来检查字符串值是否为空

data.empName = dr.IsDBNull(1) ? "No name !!!" : dr.GetString(1).ToString();

但现在我需要相同的验证,但在 VB.NET 中,通过 MySQLDataReader 检索的数据类型也是十进制,这是我当时得到的

IIf(dr.IsDBNull("valor"), 0.0, dr.GetDecimal(dr.GetOrdinal("valor")))

但是当我调试应用程序时收到错误消息:

Microsoft.VisualBasic.dll 中出现“System.InvalidCastException”类型的异常,但未在用户代码中处理

附加信息:从字符串“valor”到类型“Integer”的转换无效。

MySQL 表中的数据类型是 Decimal(10,2),你能帮我告诉我我做错了什么

【问题讨论】:

    标签: asp.net .net vb.net


    【解决方案1】:

    该行应该已经读取,dr.IsDBNull("valor") 的评估不正确并导致异常。要补救,试试这个

    IIf(dr.IsDBNull(dr.GetOrdinal("valor")), 0.0, dr.GetDecimal(dr.GetOrdinal("valor")))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-13
      • 2016-12-14
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多