试着看看if (dr.HasRows)在while (dr.read())函数之前添加一个是否有益.我的意思是,从技术上讲,如果它没有行,它就不会读取,所以如果你先检查它会有关系吗?
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
while (dr.Read())
{
....do stuff here
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果你只是确保它有值提供,那么这基本上会做同样的事情......
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
....do stuff here
}
}
Run Code Online (Sandbox Code Playgroud) 是否可能有更简洁/有效的方式来写出这个if/else语句?我不得不在这个数据库中的每个字段(接近200个字段)上检查null,并且到最后代码看起来会非常混乱.:\
if (dr["OLD_NUMBER"] != DBNull.Value)
{
lblOldNumber.Text = dr["OLD_NUMBER"].ToString();
}
else
{
lblOldNumber.Text = string.Empty;
}
// A bunch more with different lbls and columns
Run Code Online (Sandbox Code Playgroud)