2014-05-23 3 views
0

J'ai cette déclaration:.net SqlDataReader VB C#

if (sqlClass.Reader != null && sqlClass.Reader.HasRows) 
    { 
     do 
     { 
      data = sqlClass.Reader.GetString(0); //error line System.InvalidOperationException {"Invalid attempt to read when no data is present."} 
     } while (sqlClass.Reader.Read()); 
    } 

l'objet sqlClass.Reader est de type System.Data.SqlClient.SqlDataReader

En C#, il me donne un InvalidOperationException mais en VB il a bien fonctionné, quelle serait la raison pour être et comment puis-je résoudre cela?

+1

montrent l'erreur et toute la ligne d'erreur aussi. –

Répondre

4

Quelque chose comme ceci:

if (null != sqlClass.Reader) 
{ 
    while (sqlClass.Reader.Read()) 
    { 
     data = sqlClass.Reader.GetString(0); 
    } 
} 
+0

putain tu m'as battu pour ça. J'allais écrire juste ça. il s'agit d'utiliser un type différent de boucle while comme vous l'avez démontré –

+0

Vous préférez avoir conservé 'qlClass.Reader! = null' –

+0

' sqlClass.Reader.HasRows' si inutile ici –