对象不能从 DBNull 转换为其他类型.
答案:3 悬赏:50
解决时间 2021-02-21 08:13
- 提问者网友:王者佥
- 2021-02-21 02:11
对象不能从 DBNull 转换为其他类型.
最佳答案
- 二级知识专家网友:神的生死簿
- 2021-02-21 02:33
数据库的字段是NULL值,而数据库的NULL值在代码中用DBNULL.value表示,不能转成其他类型,这个类型比较特殊,dbnull可以被tostring(),你可以对字段先.tostring()在转
看你的转换是想转换成int型,这个tostring后会是string.empty,也还是不能转int,加个判断吧
if(is dbnull)
{
int i = -1;//自己定吧
}
else
{
Convert.ToInt32(值)
}
在存入数据时,要是去判断,不然就吧-1存进去了,更改了原来的dbnull,注意下就行,这个比较特殊
看你的转换是想转换成int型,这个tostring后会是string.empty,也还是不能转int,加个判断吧
if(is dbnull)
{
int i = -1;//自己定吧
}
else
{
Convert.ToInt32(值)
}
在存入数据时,要是去判断,不然就吧-1存进去了,更改了原来的dbnull,注意下就行,这个比较特殊
全部回答
- 1楼网友:傲气稳了全场
- 2021-02-21 03:42
赋值之前判断一下数据类型
- 2楼网友:有你哪都是故乡
- 2021-02-21 02:47
从数据库里面拿到的值是空值但是转换成另一种类型的时候要求不能是空值,比如DateTime,Boolean之类的,这时需要在拿到值的时候try或catch一下,或者直接设置该列不能为空,给他一个默认值就行了。
DBNull在DotNet是单独的一个类型 System.DBNull 。它只有一个值 DBNull.Value 。DBNull直接继承 Object ,所以 DBNull 不是 string , 不是 int , 也不是 DateTime
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯