检查datareader是否为空或没有行? ASP.NET

时间:2011-04-05 13:06:57

标签: c# asp.net

所以我接手了这个项目,一个页面引发了很多错误。我需要重构整个事情,但一如既往时间是一个问题。

在一种情况下,代码检查datareader是否有任何行,如果没有,则转到错误页面。但是,由于代码现在是datareader可以为null(没有成功连接到db),在那些情况下我不能使用

if (!dr.HasRows)
//

因为它显然给了我'nullreferenceexception未被代码处理'。我试过了!dr.Read但同样的事情。

代码的一部分类似于

SqlDataReader dr = null;
try
{
//connect to db etc
dr = DbHelper.GetReader("sp_GetCustomer", param);
}
catch
{
//show an error message
}

// and then:
if (!dr.HasRows)
{

}

有什么建议吗?

提前致谢。

2 个答案:

答案 0 :(得分:9)

怎么样:

if (dr == null || !dr.HasRows) {
    // Do something
}

答案 1 :(得分:2)

一种可能性是:

SqlDataReader dr = null;
try
{
    //connect to db etc
    dr = DbHelper.GetReader("sp_GetCustomer", param);
    if (!dr.HasRows)
    {

    }
}
catch
{
//show an error message
}