【问题标题】:Vb.net - Read a currency value in a sql queryVb.net - 在 sql 查询中读取货币值
【发布时间】:2015-05-21 15:31:44
【问题描述】:

我在这里所做的是,从列表视图中的数据库中选择一条记录,并将货币值插入到文本框中。我的访问数据库中有一个名为“RebateValue”的货币列。我的问题是能够用“RebateValue”内的金额分配一个整数值。 错误消息:“从类型“DBNull”到类型“Integer”的转换无效。”

    Dim query As String = "select ID,RebateValue from RebateInfoStorage where ID=@ID"
        Dim cmd As New OleDb.OleDbCommand(query, RebateDirectory.CouponConnection)
        cmd.Parameters.AddWithValue("@ID", SqlDbType.NVarChar).Value = RebateSelectedID
        Dim reader As OleDb.OleDbDataReader
        reader = cmd.ExecuteReader
        ReceivedRebates.RecordsReceived.Items.Clear()
        Dim Amount As Integer
        While reader.Read
            'This is where I get the error
            Amount = reader.GetValue(1)
            UpdateCredentials.TextBox2.Text = FormatCurrency(Amount, -1, TriState.True)
        End While
        reader.Close()

【问题讨论】:

标签: vb.net ms-access


【解决方案1】:

数据库中的值显然是空的。您需要输入代码来检查和处理它。您可以使用以下语法检查:

if reader.IsDBNull(1) Then
  'put in code to handle appropriately
Else
  Amount = reader.GetValue(1)

【讨论】:

  • 尝试将 Amount 声明为 Decimal 而不是 Integer。您也可以使用 GetDecimal 而不是 GetValue
猜你喜欢
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 2014-01-28
  • 1970-01-01
相关资源
最近更新 更多