2009-07-21 8 views
0

Je reçois le message d'erreur suivant:Erreur dans ExecuteReader

System.InvalidOperationException: ExecuteReader nécessite une connexion ouverte et disponible. L'état actuel de la connexion est fermé.

Et voici mon code:

public IDataReader ExecuteReader() 
{ 
    IDataReader reader = null; 

    try 
    { 
     this.Open(); 
     reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
    } 
    catch (Exception ex) 
    { 
     if (handleErrors) 
      strLastError = ex.Message; 
     else 
      throw; 
    } 
    catch 
    { 
     throw; 
    } 

    return reader; 
} 

Est-ce que quelqu'un sait comment je peux résoudre ce problème?

+0

Pouvez-vous publier votre méthode Open()? – Canavar

Répondre

1

L'objet Connection auquel votre SQLCommand est attaché n'a pas été ouvert. Vous devez ouvrir la connexion avant de pouvoir interroger.

Quelque chose comme ceci:

private static void OpenSqlConnection(string connectionString) 
{ 
    using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     connection.Open(); 

     var cmd = connection.CreateCommand(); 
     // Do your command access here. 

    } 
}