2009-07-21 11 views
0

Ich erhalte die folgende Fehlermeldung:Fehler in ExecuteReader

System.InvalidOperationException: ExecuteReader erfordert eine offene und verfügbare Verbindung. Der aktuelle Status der Verbindung ist Geschlossen.

Und hier ist mein 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; 
} 

Wer weiß, wie ich dieses Problem lösen kann?

+0

Können Sie Ihre Open() Methode vorschlagen? – Canavar

Antwort

1

Das Verbindungsobjekt, an das Ihr SQLCommand angeschlossen ist, wurde nicht geöffnet. Sie müssen die Verbindung öffnen, bevor Sie abfragen können.

Etwas wie folgt aus:

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

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

    } 
} 
Verwandte Themen