Bonjour,

Je suis en dernière année de BTS SIO et je dois faire un projet de fin d'année qui consiste en une application lourde liée à une BD distante.

Mon application consiste à permettre à des trésoriers de valider ou modifier des frais entrés préalablement par des demandeurs pour des remboursements dans le cadre d'associations sportives.

La BD a été mise sur le serveur du lycée par une collègue qui a donc du utiliser le proxy du lycée. Actuellement j'essaie de connecter mon application C# à la base de données.

J'ai fait quelques recherches et j'ai donc décidé de créer une classe de connexion à la bdd.

Le code actuel de ma classe ressemble à ça

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class ConnexionBDD
    {
        private static MySqlConnection connexion;
 
        public ConnexionBDD()
        {
            InitConnexion();
        }
 
        private static void InitConnexion()
        {
            string connexionString = "SERVER=172.16.193.1;DATABASE=ppe_mll;UID=Dev;PASSWORD=dev$31";
            connexion = new MySqlConnection(connexionString);
            connexion.Open();
        }
 
         public static bool ConnexionTres(string mailSaisi, string mdpSaisi)
        {
            // Défini si le trésorier a renseigné les bons identifiants
            bool ok = false;
            // Variable qui va contenir le résultat de la requête
            string mdpBDD = "";
 
            // Connexion à la base de données
            InitConnexion();
 
            // Requête SQL
            MySqlCommand cmd = new MySqlCommand("SELECT MDP FROM tresorier WHERE MAIL='" + mailSaisi + "';");
 
            // Exécution de la requête
            MySqlDataReader MysqlReader = cmd.ExecuteReader();
 
            // Lecture des données renvoyées (=fetch())
            MysqlReader.Read();
 
            mdpBDD = MysqlReader["mail"].ToString();
 
            // On ferme le reader et la requête
            MysqlReader.Close();
            cmd.Dispose();
 
            // Vérification du mot de passe
            if (mdpBDD != mdpSaisi)
            {
                ok = false;
            }
            else
            {
                ok = true;
            }
 
            // On ferme la connexion
            connexion.Close();
 
            return ok;
        }
 
    }
Ici j'ai donc une erreur lors de l'exécution de la requête dans la méthode ConnexionTres telle que

System.InvalidOperationException : 'Connection must be valid and open.'

Si quelqu'un peut m'expliquer comment connecter une appli C# à une BD mySql distante avec proxy ou m'aiguiller vers un article, ou peut-être trouver une erreur dans mon code, tout est bon à prendre.

P.S.: J'ai fait des recherches au préalable et je commence à perdre espoir avec le nombre de réponses qui me disent qu'on ne peut pas gérer cette connexion avec un proxy. Donc Merci d'avance à ceux qui répondront.