在使用SqlClient的DataReader的时候,如果某一个字段值为NULL并且使用reader.getString方法获取的时候会出现“Data is Null. This method or property cannot be called on Null values.”异常。初步分析导致该异常的原因应该是:
1、NULL值在DataReader中的类型是DBNULL。
2、DBNULL和字符串的空白值String.Empty不是同样的概念。
3、由于DBNULL和String.Empty不是同等值,因此SqlClient默认的实现没有对其进行强制转化而是直接抛出异常。