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

从类型“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();

提示你强制转换无效,你就给它直接转换吧。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值