2016-07-25 41 views
0

我正在使用SqlDataReader從DB讀取數據。在閱讀數據之前,檢查什麼是最好的方法。哪一個是最好的出3在讀取之前檢查SQLDataReader的最佳方法

方法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

最好的意見爲主。這些問題是關於SO的話題。 –

+0

@TimSchmelter謝謝,只是想知道是否需要用HasRow檢查NULL條件 – user1926138

回答

1

AfaikSqlCommand.ExecuteReader從未返回null。它可以拋出各種各樣的消息,但它永遠不會爲空。所以這個檢查是多餘的。

您也不需要檢查每個循環迭代中是否有HasRows。該信息僅在開始時有用,而不是每次都有用。但這不是必要的。如果您嘗試在沒有記錄的情況下閱讀記錄,則不會出現任何錯誤。

所以我寧願(意見爲主)這樣的:

using (SqlDataReader objReader = sqlCommand.ExecuteReader()) 
{ 
    if(objReader.HasRows) 
    { 
     while (objReader.Read()) 
     { 
      //code 
     } 
    } 
    else 
    { 
     // output/ log this? 
    } 
} 
相關問題