IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Tester connexion via BDD


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut Tester connexion via BDD
    Bonsoir ,
    voila je suis sur un petit projet de réservation de salles et via une application pc (développer en C# sous visual studio) je voudrais permettre à l'utilisateur de se connecter et pour tester cette connexion je voudrais faire un test via ma BDD comment doit'je mi prendre ?

    J'ai déjà écrit ce bout de code :

    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
     
     
      MySqlDataAdapter MyAdapter;
                MySqlConnection Connection;
                MySql.Data.MySqlClient.MySqlConnection msqlConnection;
                string stringConnexion;
                string serveur, user, password, database,userBDD,passwordBDD;
                serveur = "127.0.0.1";
                user = txt_user.Text;
                password = txt_mdp.Text;
                database = "cave_a_zic";
                userBDD = "root";
                passwordBDD = "";
     
     
                /*******************Permet de se connecter à la base de données*******************/
     
     
                stringConnexion = "server=" + serveur + ";user id=" + userBDD + ";password=" + passwordBDD + ";database=" + database + ";persist security info=False";
     
     
     
     
                /*******************Permet de s'authentifier en vérifiant les infos avec la base de données*******************/
     
     
     
                Connection = new MySqlConnection();
                MyAdapter = new MySqlDataAdapter();
                msqlConnection = null;
                msqlConnection = new MySql.Data.MySqlClient.MySqlConnection(stringConnexion);
                MySql.Data.MySqlClient.MySqlCommand msqlCommand = new MySql.Data.MySqlClient.MySqlCommand();
     
                msqlCommand.Connection = msqlConnection;
     
                msqlCommand.CommandText = "SELECT * FROM `membre` WHERE `pseudo`='" + user + "' AND `password`='" + password + "' AND `valide`='0';";
                try
                {
     
                    msqlConnection.Open();
     
                    MySql.Data.MySqlClient.MySqlDataReader msqlReader = msqlCommand.ExecuteReader();
     
                }
                catch (Exception er)
                {
                    MessageBox.Show("Probleme avec la Base");
                }
                finally
                {
     
                    msqlConnection.Close();
                }
    Merci de votre aide et bonne soirée

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Fait simplement un Open() sur ton SqlConnection, si ça ouvre c'est que le test est concluant. Si ça plante, alors....!

    Petite remarque, fait des requêtes paramétrés. Utilise le Parameters de ton SqlCommand. Ça peut t'éviter plein de soucis!

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Citation Envoyé par PatteDePoule Voir le message
    Fait simplement un Open() sur ton SqlConnection, si ça ouvre c'est que le test est concluant. Si ça plante, alors....!

    Petite remarque, fait des requêtes paramétrés. Utilise le Parameters de ton SqlCommand. Ça peut t'éviter plein de soucis!
    Bonjour et merci de ta réponse, quand tu dis de passer le open() sur mon sqlconnexion tu parles de le mettre en paramètre ou à la suite ? Dans les 2 cas on ne va pas tester la requête ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par PatteDePoule Voir le message
    Petite remarque, fait des requêtes paramétrés. Utilise le Parameters de ton SqlCommand. Ça peut t'éviter plein de soucis!
    Effectivement c'est indispensable... Sinon, j'arrive dans ton appli, je tape comme user : admin'; --, et hop ! je suis connecté en tant qu'admin sans connaitre le mot de passe... cf. Injection SQL

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    J'ai pris en compte vos conseils merci.

    voilà mon code retravaillé :

    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
     private void button1_Click(object sender, EventArgs e)
            {
     
                SqlConnection connection = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=cave_a_zic;User ID=root;Password=");
                string query = " SELECT * FROM membre WHERE pseudo=@nom AND password= @password";
                SqlCommand command = new SqlCommand(query, connection);
                command.Parameters.Add("@nom", txt_user.Text);
                command.Parameters.Add("@password", txt_mdp.Text);
                connection.Open();
                int result = (int)command.ExecuteScalar();
                if (result > 0)
                {
                    MessageBox.Show("reussi");
                    // contriole user/mot de passe OK
                }
                connection.Close();
            }
    cependant il reste une erreur de connexion...

    Message d'erreur (sur le connection.Open();) : Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: Named Pipes Provider, error: 40 - Impossible d'ouvrir une connexion à SQL Server)


    une idée ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Euh, tu essaies de te connecter à SQL Server ou MySQL ? Le code que tu avais au départ est pour MySQL, et ton nouveau code est pour SQL Server...

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Bonjour à tous,

    Euh, tu essaies de te connecter à SQL Server ou MySQL ? Le code que tu avais au départ est pour MySQL, et ton nouveau code est pour SQL Server...
    petite erreur (ou grosse...) de ma part désolé tomlev ^^

    en effet il fallait effectuer la connexion et les commandes via MySql et non SQL,
    cependant le test ne marché pas non plus..
    J'ai donc fait une boucle avec un reader qui viens chercher les valeurs dans la table membre grace à un GetString() une fois celles si retournées je peux les tester.

    Voilà la résolution du problème :

    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
    59
    60
     
            private void button1_Click(object sender, EventArgs e)
            {
     
                MySqlConnection wConnexion = new MySqlConnection();
                wConnexion.ConnectionString = "Database=cave_a_zic;Data Source=127.0.0.1;User Id=root;Password=";
                string query = " SELECT * FROM membre";
                MySqlCommand command = new MySqlCommand(query, wConnexion);
     
                command.Parameters.Add("@nom", txt_user.Text);
                command.Parameters.Add("@password", txt_mdp.Text);
                wConnexion.Open();
                try
                {
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read()) {
                       string retour =  reader.GetString(1);
                        string retour2=reader.GetString(2);
     
                        if ((retour == txt_user.Text) && (retour2 == txt_mdp.Text))
                        {
                            MessageBox.Show("Bienvenue !");
     
                        }
                        if (retour != txt_user.Text)
                        {
                            MessageBox.Show("Utilisateur erroné");
                        }
                        if (retour2 != txt_mdp.Text)
                        {
                            MessageBox.Show("Mot de passe erronéé");
                        }
     
                    }
     
     
                 }
     
                catch (Exception er)
                {
                    MessageBox.Show("erreur sur la base de données");
                }
     
     
                wConnexion.Close();
            }
        }
     
     
                 }
     
                catch (Exception er)
                {
                    MessageBox.Show("erreur sur la base de données");
                }
     
     
                wConnexion.Close();
            }
        }
    merci à tous pour votre aide.
    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion externe BDD via site
    Par djchou dans le forum C#
    Réponses: 1
    Dernier message: 25/08/2013, 19h39
  2. connexion à une BDD Oracle via powershell sous Windows R2 2008
    Par phinestra dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 04/12/2012, 16h47
  3. Connexion à une BDD SQL Server via postgreSQL
    Par siin44 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 26/01/2012, 15h15
  4. [XL-2003] Connexion à une BDD via ODBC
    Par skan_one dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/07/2009, 16h24
  5. [WinDev] Connexion à une BDD Oracle via ODBC
    Par Morgoth777 dans le forum WinDev
    Réponses: 2
    Dernier message: 01/12/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo