我正在使用SqlDataReader从DB读取数据。在读取数据之前,最好的检查方法是什么。哪一个最好的3个
方法1
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if (objReader != null)
{
while (objReader.HasRows && objReader.Read())
{
//code
}
}
}
方法2
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if (objReader != null)
{
while (objReader.Read())
{
//code
}
}
}
方法3
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
while (objReader.HasRows && objReader.Read())
{
//code
}
}
答案 0 :(得分:1)
Afaik SqlCommand.ExecuteReader
从不返回null。它可以抛出各种刺激,但它永远不会为空。所以这项检查是多余的。
您也不需要在每次循环迭代中检查它是否HasRows
。该信息仅在开始时有用,而不是每次都有用。但这没有必要。如果您在没有记录时尝试读取记录,则不会收到任何错误。
所以我更喜欢(基于意见)这个:
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if(objReader.HasRows)
{
while (objReader.Read())
{
//code
}
}
else
{
// output/ log this?
}
}