- 在查询语句中难免遇到查询字段为空的情况,所以如何处理返回空值就是一个必须处理的问题;
- 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()方法,我采用的这种方法比较快捷,配上三元运算符即可赋值给其他变量;
sqlStr = "select * from t_ropeway " ; sqlComm = new SqlCommand(sqlStr, conn); SqlDataReader sr= sqlComm.ExecuteReader(); while (sr.Read()) { Id =sr["Id"].ToString().Equals("") ? 0 : Convert.ToInt32(sr["Id"].ToString()); Name = sr["Name"].ToString(); list.Add(ropeway); } ropewayInfo.Close();

本文探讨了在C#中处理SQL查询时遇到字段空值的问题。当数据库字段值为NULL时,不能简单地用 sr[0]==null 来判断。介绍了三种常见方法:1) 使用System.DBNull类;2) 利用SqlDataReader的IsDBNull方法;3) 结合ToSting()方法和三元运算符进行快速判断。

1万+

被折叠的 条评论
为什么被折叠?



