2016-07-25 76 views
0

Ich lese Daten aus der DB mit SqlDataReader. Was ist der beste Weg, um zu überprüfen, bevor Sie Daten lesen. Welches ist am besten aus 3Die beste Möglichkeit, SQLDataReader vor dem Lesen zu überprüfen

Methode 1

using (SqlDataReader objReader = sqlCommand.ExecuteReader()) 
        { 
         if (objReader != null) 
         { 
          while (objReader.HasRows && objReader.Read()) 
          { 
           //code 
          } 
         } 
        } 

Methode 2

   using (SqlDataReader objReader = sqlCommand.ExecuteReader()) 
        { 
         if (objReader != null) 
         { 
          while (objReader.Read()) 
          { 
           //code 
          } 
         } 
        } 

Methode 3

   using (SqlDataReader objReader = sqlCommand.ExecuteReader()) 
        { 

          while (objReader.HasRows && objReader.Read()) 
          { 
           //code 
          } 

        } 
+0

Beste ist Meinung basiert. Diese Art von Fragen sind off-topic auf SO. –

+0

@TimSchmelter Danke, möchte nur wissen, ob es notwendig ist, NULL-Bedingung mit HasRow zu überprüfen – user1926138

Antwort

1

AfaikSqlCommand.ExecuteReadernie gibt null zurück. Es kann verschiedene Ausnahmen werfen, aber es ist nie null. Diese Überprüfung ist also überflüssig.

Sie müssen auch nicht überprüfen, ob es in jeder Schleife Iteration HasRows ist. Diese Information ist nur am Anfang und nicht jedes Mal nützlich. Aber es ist nicht notwendig. Sie werden keine Fehler erhalten, wenn Sie versuchen, Datensätze zu lesen, wenn keine vorhanden sind.

So würde ich es vorziehen, (Meinung basiert) dies:

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