所以我接手了这个项目,一个页面引发了很多错误。我需要重构整个事情,但一如既往时间是一个问题。
在一种情况下,代码检查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)
{
}
有什么建议吗?
提前致谢。
答案 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
}