Bonjour amis developezistes,
je développe une appli C# chargée de se connecter à une base MySql sur un serveur distant.
Je rencontre le message d'erreur suivant lorsque j'essaie d'insérer des données dans les tables de la base :
MySql.Data.MySqlClient.MySqlException: There is already an open DataReader associated with this Connection which must be
closed first.
à MySql.Data.MySqlClient.MySqlCommand.CheckState()
à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
à MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
à ExportHeurèsToMySql.ConnexionVersMySql.ordreSql(String ordSql) dans C:\~chemin très long~\ConnexionVersMySql.cs:ligne 83
Voici le code coupable :
Toutefois ce code a fonctionné parfaitement pour créer les tables dans la base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public void ordreSql(string ordSql) { MySqlDataAdapter MyAdapter = new MySqlDataAdapter(); MyAdapter.SelectCommand = new MySqlCommand(ordSql, this.connection); try { MyAdapter.SelectCommand.ExecuteNonQuery(); } catch (Exception e) { Console.WriteLine("Erreur sur l'ordre SQL suivant : " + ordSql); Console.WriteLine(e.ToString()); } }
J'admets avoir copié-collé-modifié ce code sans vraiment comprendre le principe derrière
J'ai essayé quelques bidouilles comme "MyAdapter.Dispose()" etc mais sans résultat.
Vos suggestions sont les bienvenues !
Partager