阅读前检查 SQLDataReader 的最佳方法
Best way to check SQLDataReader before reading
我正在使用 SqlDataReader 从数据库中读取数据。在读取数据之前,最好的检查方法是什么。 3 个中哪一个最好
方法一
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if (objReader != null)
{
while (objReader.HasRows && objReader.Read())
{
//code
}
}
}
方法二
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if (objReader != null)
{
while (objReader.Read())
{
//code
}
}
}
方法三
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
while (objReader.HasRows && objReader.Read())
{
//code
}
}
Afaik SqlCommand.ExecuteReader
从不 returns 空。它可以抛出各种异常,但它永远不会为空。所以这个检查是多余的。
您也不需要在每次循环迭代中检查它是否 HasRows
。该信息仅在开始时有用,并非每次都有用。但没有必要。如果您在 none.
时尝试读取记录,则不会出现任何错误
所以我更喜欢(基于意见)这个:
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if(objReader.HasRows)
{
while (objReader.Read())
{
//code
}
}
else
{
// output/ log this?
}
}
我正在使用 SqlDataReader 从数据库中读取数据。在读取数据之前,最好的检查方法是什么。 3 个中哪一个最好
方法一
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if (objReader != null)
{
while (objReader.HasRows && objReader.Read())
{
//code
}
}
}
方法二
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if (objReader != null)
{
while (objReader.Read())
{
//code
}
}
}
方法三
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
while (objReader.HasRows && objReader.Read())
{
//code
}
}
Afaik SqlCommand.ExecuteReader
从不 returns 空。它可以抛出各种异常,但它永远不会为空。所以这个检查是多余的。
您也不需要在每次循环迭代中检查它是否 HasRows
。该信息仅在开始时有用,并非每次都有用。但没有必要。如果您在 none.
所以我更喜欢(基于意见)这个:
using (SqlDataReader objReader = sqlCommand.ExecuteReader())
{
if(objReader.HasRows)
{
while (objReader.Read())
{
//code
}
}
else
{
// output/ log this?
}
}