使用下面给出的代码显示一个错误时。错误是:“Conversion from type 'DBNull' to type 'String' is not valid.”帮助我找到合适的解决方案。谢谢你。

代码:

cmd2.CommandText = "SELECT [first_name]+' ' +[middle_name]+' ' + [last_name] AS NAME, [staff_id] FROM [staff_profile]"
sdr2 = cmd2.ExecuteReader
While sdr2.Read
drop1l.Items.Add(New ListItem(sdr2("name"), sdr2("staff_id"))) // error popup here
End While
sdr2.Close()

最佳答案

您应该这样尝试:

If Not IsDBNull(dt.Rows(0)("name")) Then
    sdr2.Value = dt.Rows(0)("name")
End If
If Not IsDBNull(dt.Rows(1)("staff_id")) Then
    sdr2.Value = dt.Rows(1)("staff_id")
End If

或像这样的肮脏修补程序:
drop1l.Items.Add(New ListItem(sdr2("name").ToString(), sdr2("staff_id").ToString()))

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

10-12 18:41