首页 新闻 会员 周边 捐助

reader.getValue()能对空值处理吗?

0
[已解决问题] 解决于 2012-07-30 14:08

数据库中有空值,但是为什么用reader.getValue().tostring()不会报异常呢?求指点.......

SQL
轻狂の书生的主页 轻狂の书生 | 小虾三级 | 园豆:1042
提问于:2012-07-29 16:42
< >
分享
最佳答案
0

使用reader.GetValue()时,如果数据库中有空值,会返回DBNull.Value。相关代码如下:

// System.Data.SqlClient.SqlDataReader
private object GetValueFromSqlBufferInternal(SqlBuffer data, _SqlMetaData metaData)
{
    if (this._typeSystem <= SqlConnectionString.TypeSystem.SQLServer2005 && metaData.IsNewKatmaiDateTimeType)
    {
        if (data.IsNull)
        {
            return DBNull.Value;
        }
    }
    ...
}

DBNull.Value实现了ToString()操作,会返回空字符串。相关代码如下:

// System.DBNull
public override string ToString()
{
    return string.Empty;
}

 

 

 

奖励园豆:5
dudu | 高人七级 |园豆:29568 | 2012-07-30 11:20

OK ,了解了,多谢

轻狂の书生 | 园豆:1042 (小虾三级) | 2012-07-30 14:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册