从类型"DBNull"到"String"类型的转换无效

use*_*305 20 vb.net asp.net string dbnull

我收到了这个问题

从类型"DBNull"到"String"类型的转换无效.

第501行:hfSupEmail.Value = dt.Rows(0)("SupEmail")

我对此非常陌生,我不确定有人会指导我的确切问题是什么?

非常感谢

Joe*_*orn 27

快速而肮脏的修复:

hfSupEmail.Value = dt.Rows(0)("SupEmail").ToString()
Run Code Online (Sandbox Code Playgroud)

当您的最终目标和源数据已经是字符串时,这非常有效.这是因为.ToString()对于已经是字符串的内容的任何额外调用通常会通过抖动优化为无操作,如果它为NULL,则生成的DBNull.Value.ToString()表达式将生成您想要的空字符串.

但是,如果您正在使用非字符串类型,则最终可能会执行额外的工作,尤其是在需要特定格式的情况下使用DateTime之类的工作.


小智 5

希望这个帮助.... dt.Rows(0)("SupEmail")返回null

在分配之前避免这个chcek

If Not IsDBNull(dt.Rows(0)("SupEmail")) Then
    hfSupEmail.Value = dt.Rows(0)("SupEmail")
End If
Run Code Online (Sandbox Code Playgroud)