在今天写“属性赋值代码”中遇见一个问题: 类型“System.DBNull”的对象无法转换为类型“System.String”。
主要是因为数据库中的这个字段是空值,在这个地方我浪费了很长的时间,最后还是解决了这个问题。其实很简单就是在赋值前写串代码判断。
可是很多人都会随意的写出这样的代码:

if(i!=null)//判断语句
{
        //执行属性赋值的代码    
}
这样的写法不正确,原因是因为DBNull 并不是 null ,虽然都是空值,但是这两个空值不同;下面是两者的含义:
 DbNull 是指数据库中当一个字段没有被设置值的时候的值,相当于数据库中的“空值”。
null是指空引用。(C#、vb)
所以正确的判断的语句应该这样写:
if(i!= System.DBNull.Value)//正确的写法    
{    
                //执行属性赋值的代码        
}

这样写就没错了。