Non valide “tentative d'appel de Lecture lorsque le lecteur est fermée à l'aide d'un SqlDataReader

1) j'ai les codes suivants:

private static sqlDataReader gCandidateList = null;

public SqlDataReader myCandidateList
{
    set
    {
        gCandidateList = value;
    }
    get
    {
        return gCandidateList;
    }
}

2) En FormA j'ai:

sqlConn.ConnectionString = mySettings.myConnString;
sqlConn.Open();
SqlCommand cmdAvailableCandidate = new SqlCommand(tempString, sqlConn);
SqlDataReader drAvailableCandidate = cmdAvailableCandidate.ExecuteReader();
mySettings.myCandidateList = drAvailableCandidate;
sqlConn.Close();

3) Dans FormB je veux réutiliser les données enregistrées dans myCandidatList donc j'utilise:

SqlDataReader drCandidate = mySettings.myCandidateList;
drCandidate.Read();

4) puis j'ai le message d'erreur "Invalid tentative d'appel de Lecture lorsque le lecteur est fermé."

5) j'ai essayé mySettings.myCandidateList.Read() à (3) ci-dessus et de nouveau reçu le même message d'erreur.

6) Comment puis-je ré-ouvrir SqlDataReader drCandidate de lire les données?

7) apprécieront beaucoup pour le conseiller et l'aider, s'il vous plaît.

Statique DataReader est jamais une bonne idée.

OriginalL'auteur user1033744 | 2012-01-24