检测IDataReader是否为空的最佳方法是什么?

时间:2020-03-05 18:49:47  来源:igfitidea点击:

似乎IDataReader.Read()至少一次始终为true(如果我对此有误,请告诉我。)那么,如何不将其包装在try / catch中而知道是否没有记录呢?

解决方案

回答

if(dr.Read())
{
   //do stuff
}
else
{
 //it's empty
}

通常,我们会这样做:

while(dr.Read())
{
}

回答

是的,如果我们要使用该接口,则"直到错误"是唯一的测试方法。如果我们正在寻找通用的IDataReader实现,则可以尝试DbDataReader并使用HasRows属性。