日期:2014-05-18  浏览次数:20437 次

请问从数据库中读取数据出来,出错信息:"从类型“DBNull”到类型“String”的强制转换无效。"怎么办
请问从数据库中读取数据出来,出错信息:"从类型“DBNull”到类型“String”的强制转换无效。"怎么办

代码如下:
  Dim cksj As DateTime
  While (myreader.Read)
  cksj = myreader("cksj")
  End While
  tb_cksj.Text = cksj

我使用的是access数据库,里面的cksj为空,我想把这个数据读出来,并给一个testbox赋值.

------解决方案--------------------
先判断 myreader("cksj") 是否等于 DbNull.Value
------解决方案--------------------
.TOSTRING()?
------解决方案--------------------
VB.NET code
While (myreader.Read) 
  tb_cksj.Text = myreader("cksj").ToString()
End While

------解决方案--------------------
C#代码
while (myreader.Read) 
{
cksj = myreader.IsDBNull(0) ? "" : myreader.GetString(0);
}
------解决方案--------------------
myreader("cksj")为null;
tostring就会出错了
在为null的时候 tb_cksj.Text = string.Empty
------解决方案--------------------
myreader("cksj")出来是个object类型啊 要tostring()
------解决方案--------------------
C# code
public static object ConvertNull(object values)
    {
        try
        {
            return (values == System.DBNull.Value ? null : (object)values);
        }
        catch (Exception err)
        {
            return ErrorLog(err);
        }
    }