阅读前检查 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? 
    }
}