Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connexion bdd MySql avec proxy depuis une appli C#

MySql, C#, VisualStudio, Proxy

    23 mai 2018 à 11:28:33

    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

    class connexionBDD
        {
            private static MySqlConnection connexion;
    
            public connexionBDD()
            {
                InitConnexion();
            }
    
            private static void InitConnexion()
            {
                string connexionString = "SERVER=172.16.193.1; PORT=81; DATABASE=ppe_mll; UID=Dev; PASSWORD=dev$31";
                connexion = new MySqlConnection(connexionString);
                connexion.Open();
            }
    
            public static bool ConnexionTres(string mailSaisi, string mdpSaisi)
            {
                bool ok = false;
                MySqlDataReader lignes;
    
                InitConnexion();
                MySqlCommand cmd = connexion.CreateCommand();
                cmd.CommandText = "SELECT MAIL, MDP FROM tresorier WHERE MAIL='" + mailSaisi + "' AND MDP='" + mdpSaisi + "';";
                cmd.Connection = connexion;
    
                string mdpBDD = "";
                string idBDD = "";
    
                lignes = cmd.ExecuteReader();
                
                while (lignes.Read())
                {
                    idBDD = Convert.ToString(lignes.GetValue(0));
                    mdpBDD = Convert.ToString(lignes.GetValue(1));
                }
    
                lignes.Close();
    
                if (idBDD != mailSaisi || mdpBDD != mdpSaisi)
                {
                    ok = false;
                }
                else
                {
                    ok = true;
                }
    
                connexion.Close();
                return ok;
            }
    
        }

    J'ai une erreur sur le connexion.Open à la 14e ligne

    System.TimeoutException : 'Impossible de lire les données de la connexion de transport : Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu.'

    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. ^^

    • Partager sur Facebook
    • Partager sur Twitter
      23 mai 2018 à 13:11:24

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Mauvais forum

      Le sujet est déplacé dans le forum approprié : Langages.NET

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        23 mai 2018 à 14:59:19

        Re-bonjour,

        J'ai continué mes recherches et j'ai l'impression d'avoir passé l'erreur précédente étant donné que j'ai une nouvelle erreur qui se manifeste plus loin dans le code.

        Voici mon code actuel

        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.'

        Merci d'avance pour toute aide, je ne sais pas si j'ai donné assez d'infos pour résoudre le problème donc n'hésitez pas à me demander si vous n'avez pas bien compris.

        • Partager sur Facebook
        • Partager sur Twitter
          22 juin 2018 à 17:17:07

          DataReader, c'est un vieux machin qu'on ne devrait plus utiliser depuis plus de 15 ans.

          Comment votre reader utilise votre champ "connexion" ?

          Utilisez un DataAdapter et laissez tomber ces antiquités.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          Connexion bdd MySql avec proxy depuis une appli C#

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown