Objet SqlDataReader lançant une exception chaque fois qu'une opération est effectuée dessus

Je travaille sur un projet dans VS13 et SQL Server 2012 et je suis confronté à un petit problème. Je n'arrive pas à lire datatables de ma database. Il triggers une exception chaque fois que j'essaie d'effectuer une opération sur l'object SqlDataReader que j'utilise pour lire datatables.

L'exception que InvalidOperationException est InvalidOperationException .

Regardez ce code, j'appelle cette fonction avec la requête SQL comme paramètre et stocke l'object returnné dans un autre object SqlDataReader .

 private SqlDataReader reader (ssortingng sqCommand) { myConnection.Open(); ssortingng ssortingng1; ssortingng1 = sqCommand; SqlDataReader a = null; try { SqlCommand Newcommand = new SqlCommand(ssortingng1, myConnection); a = Newcommand.ExecuteReader(); } catch (Exception e) { MessageBox.Show(e.ToSsortingng()); } myConnection.Close(); if (a.Read()) //**statement 1** return a; else return null; } 

Je reçois l'exception dans l'instruction 1 marquée dans le code ci-dessus et dans chaque opération que j'effectue sur l'object a ou sur l'object qui le reçoit.

Quelqu'un peut-il me dire ce qui ne va pas avec mon code ou fournir d'autres explications? Si plus d'autres parties du code sont nécessaires pour find l'erreur, je peux le fournir.

Merci pour le time et l'aide que vous pouvez fournir. 🙂

Votre connection doit restr ouverte pendant que vous utilisez le SqlDataReader . Une utilisation plus conventionnelle pour votre SqlDataReader serait la suivante:

 private List<object> Reader(ssortingng sqCommand) { using (SqlConnection myConnection = new SqlConnection(ConnectionSsortingng)) { myConnection.Open(); using (SqlCommand cmd = new SqlCommand(sqCommand, myConnection)) using (SqlDataReader reader = cmd.ExecuteReader()) { List<object> list = new List<object>(); while (reader.Read()) { list.Add(reader[0]); } return list; } } }