假定数据集名称为DataResult
其中中有一列,名为DataColumn,其保存的数据类型为System.String,在数据库中取数据时,若DataColumn不为DBNULL,一般采用下面的方法进行取值:
DataResult dr = new DataResult();
string dataGet = dr.DataColumn;//但是当该列为空时,会抛出异常,即使将该列的属性改为-值为null时设置为empty,也会因为类型安全的问题触发强类型无法转换的问题
此时,可采取以下方法进行解决:
不使用“点”语法,而采用dr[“DataColumn”]的方法进行取值,然后进行必要的判断以及转换,具体如下:
string dataGet = dr[“DataColumn”].Equals(DBNull.value)?string.empty:dr["DataColumn"];
以上代码可进行简化,使用c#的可空值类型可以将该行代码改为:
string dataGet = dr[“DataColumn”]??string.empty;