【问题标题】:Conversion from type "DBNull" to type 'string' is not valid error从“DBNull”类型转换为“字符串”类型是无效错误
【发布时间】:2017-09-23 00:09:05
【问题描述】:

请帮忙!

当我通过水晶报表单击打印按钮时,它工作正常,但是当我关闭报表表单回到我的 datagridview 时,会弹出一个关于 从“DBNull”类型转换为“字符串”类型无效

这是我的代码,我可以在其中将数据从我的数据库检索到我的 datagridview

DataGridView1.Rows.Clear()
    sql = "SELECT * FROM tblfsesmis"
    cmd = New MySqlCommand(sql, con)

    Try
        con.Open()
        adapter = New MySqlDataAdapter(cmd)

        adapter.Fill(dt)

        For Each row In dt.Rows
            Populate(row(0), row(1), row(2), row(3), row(4), row(5), row(6), row(7), row(8), row(9), row(10), row(11))
        Next
        con.Close()

        dt.Rows.Clear()
        DataGridView1.Refresh()
    Catch ex As Exception
        MsgBox(ex.Message)
        con.Close()
    End Try

【问题讨论】:

  • 关闭窗口时运行什么???
  • 我在其中搜索并单击打印按钮的搜索表单。 !但是之后我可以查看或单击打印按钮并关闭报表!搜索表单将加载所有字段,但如果我再次单击任何按钮或打印按钮,则会显示错误
  • 您的搜索表单代码在哪里,您是否设置了断点以单步执行?
  • 顺便说一句,我在报表中使用 CrystalReport!
  • 太长了,不能放在这里,先生

标签: vb.net crystal-reports-2008


【解决方案1】:

也许您需要在将这些值发送到其他地方之前检查 DBNull 值:

If IsDBNull(row(x)) Then 
    value = "" 
Else 
    value = row(x)
End If

另外,您想使用Using 块进行连接,因为这里只有在出现异常时才关闭它(这意味着您真的不信任自己......)

这是一个示例(我不知道您是如何创建连接的):

DataGridView1.Rows.Clear()
sql = "SELECT * FROM tblfsesmis"

Try
    Using con As New SQLConnection()
        con.Open()   
        cmd = New MySqlCommand(sql, con)
        adapter = New MySqlDataAdapter(cmd)

        adapter.Fill(dt)

        For Each row In dt.Rows
            'It's in your Populate function that you want to check the DBNull values
            Populate(row(0), row(1), row(2), row(3), row(4), row(5), row(6), row(7), row(8), row(9), row(10), row(11))
        Next

        dt.Rows.Clear()
        DataGridView1.Refresh()
    End Using 'con Object will be disposed automatically
Catch ex As Exception
    MsgBox(ex.Message)
End Try

【讨论】:

  • 我将把 IsDBNull 放在哪里?它可能是什么声明?值和行?
猜你喜欢
  • 1970-01-01
  • 2014-03-15
  • 2023-03-07
  • 2014-06-10
  • 2012-11-19
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多