您的位置:首页 > 数据库

“DBNull”到类型“String”的强制转换无效 & 如何将NULL写入SqlCommand的参数中?

2005-01-06 16:51 459 查看
从类型“DBNull”到类型“String”的强制转换无效
这是经常会遇到的问题了,有人建议如下:
If Not ds.Tables("file").Rows(0).Item(5).GetType Is System.DBNull.Value.GetType Then
但如果每个字段都进行这样的判断,有点太麻烦了

有人建议直接在select语句中搞掂:select name,isnull(memo,'') as memo from xxx

最后觉得比较好的办法是:
你直接ToString()掉就行了。
TextBox1.Text = ds.Tables(0).Rows(rowNum).Item("E_EDate").ToString();
提示你强制转换无效,你就给它直接转换吧。

请问:当参数为日期型时,日期为空时,怎么给参数赋值!才能将Null日期写入数据库中!!
谢谢!!
--------------
re1:
对于任何类型的NULL字段都是:
DBNull.Value;

---------------
re2:
楼上的就可以,也可以你用datetime.minvalue代替。
---------------
re3:
非常感谢!

to eboywy(飞影) :
用DBNull.value解决了存入数据库的问题,但当从dataset中读取数据至textbox时,如果直接写TextBox1.Text = ds.Tables(0).Rows(rowNum).Item("E_EDate"),会提示出错“从类型“DBNull”到类型“string”的强制转换无效。”还要进行一下判断:
If ds.Tables(0).Rows(rowNum).Item("E_EDate") Is DBNull.Value Then
Else
med_EDate.CtlText = .Item("E_EDate") & ""
End If
请问,有没有更简单的方法!如果每个字段都进行这样的判断,有点太麻烦了

to zhanqiangz(闲云野鹤):
你的赋值方法会出错:“未处理的“System.Reflection.TargetInvocationException”类型的异常出现在 mscorlib.dll 中。
其他信息: 调用的目标发生了异常。”,请问知不知道这个错误是什么意思?

谢谢
---------------
re4:
你直接ToString()掉就行了。
TextBox1.Text = ds.Tables(0).Rows(rowNum).Item("E_EDate").ToString();

提示你强制转换无效,你就给它直接转换吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: