小编Jos*_*rix的帖子

如果我调用SqlReader.Read,应该调用SqlDataReader.HasRows

试着看看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)

.net c# sql methods sqldatareader

22
推荐指数
2
解决办法
4万
查看次数

效率更高如果\更多?

是否可能有更简洁/有效的方式来写出这个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)

c# performance if-statement processing-efficiency

1
推荐指数
1
解决办法
653
查看次数