- 在查询语句中难免遇到查询字段为空的情况,所以如何处理返回空值就是一个必须处理的问题;
- sqlserver在数据库中空值时NULL,在查询后就是一个空,不是“”,也不是null所以无法用sr[0]==null来判断;
`
-
在进行判断的时候我查看网上判断空值的办法大体分为三种:
1.通过System.DBNull类来判断;dt.rows[0]["字段名"] == DBNull.Value; //使用DataTable //或者 ropeway["字段名"] // 使用SqlDataReader, while循环 sr.Read();
2.通过IsNull()方法,此法适用于用DataTable 数据表,不适用于SqlDataReader读取的一行数据,这有一个相对应的方法
bool SqlDataReader.IsDBNull(int i);
返回一个bool类型的值指示是否包含不存在或者缺少的值;
int i 参数为从0开始的列序号;//DataTable 接收 DataTable dt; //数据表对象已经接收了数据 dt.rows[0].IsNull("字段"); //判断第一行数据的某个字段是否为空 //SqlDataReader接收 SqlDataReader sr= sqlComm.ExecuteReader(); while() { bool isNull=rs.IsDBNull(0); }
3.通过ToSting()方法,我采用的这种方法比较快捷,配上三元运算符即可赋值给其他变量;