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

Accès aux données Discussion :

[C#][ODBC] Récuperer le Résultat d'un requête


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut [C#][ODBC] Récuperer le Résultat d'un requête
    Bonjour, je suis débutant, j'ai un petit programme à faire en C# , je me connecte à une base de donnée postgreSQl, j'envoie une requête pour vérifier qu'un pilote existe bien dans la base de donnée.
    Je voudrais savoir comment récupérer le résultat autre que dans un dataset, car mon but et juste de savoir qu'il existe pour pouvoir ensuite le connecter à un serveur, voila ce que j'ai écris :
    Code C# : 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
    private void button1_Click(object sender, EventArgs e)
            {
                string nom = textBox1.Text; 
                string motpasse = textBox2.Text;
                string connexionString = "Dsn=PostgreSQL30W;uid=xxx;pwd=xxxx";
                OdbcConnection connexion = new OdbcConnection(connexionString);
                string requete = "select nompilote,motdepasse from pilote where       nompilote = '@nom' and motdepasse = '@motpasse'";
                OdbcCommand commmande = new dbcCommand(requete,connexion);
                commmande.Parameters.Add(new OdbcParameter("@nom",OdbcType.Char));
                commmande.Parameters["@nom"].Value = nom;
                commmande.Parameters.Add(new OdbcParameter("@motpasse",OdbcType.Char));
                commmande.Parameters["@motpasse"].Value = motpasse;
                connexion.Open();
                OdbcDataReader reader = commmande.ExecuteReader();
                int compteur = 0;
                while(reader.Read())
                {
                    compteur += 1;
                }
                MessageBox.Show("Il y'a " +compteur+ " pilote(s) correspondant");
                connexion.Close();
     
            }
    Et la dans compteur j'ai zéro alors qu'il existe en base de donnée, merci beaucoup de m'aider car je ne comprends pas là.

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string requete = "select nompilote,motdepasse from pilote where nompilote = @nom and motdepasse = @motpasse";

    Essaye ça. (je ne pense pas que ça fonctionne avec des simples quotes autour des noms de paramètre)
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Voila l'erreur que j'ai lorsque je ne mets pas les cotes :
    Il me dit que la colonne "nom" n'existe pas mais je le sais ça, puisque c'est nompilote, mais je ne vois pas pourquoi j'ai cette erreur, merci beaucoup
    Images attachées Images attachées  

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Moué, j'ai jamais eu ça... Je sèche
    En tout cas, si tu mets des simples quotes, ton "nom de variable" (@nom) est interprêté comme une chaîne de caractères donc c'est évidemment pas comme ça qu'il faut faire.

    Dans ta première source que tu as mis, il n'y a pas nom dans la requête mais avec le screen, je ne vois pas la requête en entier... Tu n'aurais pas fait SELECT nom par hasard ?
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Goldar
    Moué, j'ai jamais eu ça... Je sèche
    En tout cas, si tu mets des simples quotes, ton "nom de variable" (@nom) est interprêté comme une chaîne de caractères donc c'est évidemment pas comme ça qu'il faut faire.

    Dans ta première source que tu as mis, il n'y a pas nom dans la requête mais avec le screen, je ne vois pas la requête en entier... Tu n'aurais pas fait SELECT nom par hasard ?
    Non, c'est bien nompilote, c'est peut être dû à postgreSQl, il accepte les requêtes paramétrées ou pas ?

  6. #6
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Je pense pas que ça ait un rapport car ça doit être l'odbc qui s'arrange pour donner à la base de données une requête valide.


    Si tu retires nompilote = @nompilote pour ne laisser que le mot de passe, est-ce que tu as une erreur cette fois sur motdepasse = @motpasse ?
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Points : 46
    Points
    46
    Par défaut Re:
    salut,
    essaye ça :

    string requete = "select nompilote,motdepasse from pilote where nompilote = '" +nom+ "' and motdepasse = '" + motpasse + "'";

    A+

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Goldar
    Je pense pas que ça ait un rapport car ça doit être l'odbc qui s'arrange pour donner à la base de données une requête valide.


    Si tu retires nompilote = @nompilote pour ne laisser que le mot de passe, est-ce que tu as une erreur cette fois sur motdepasse = @motpasse ?
    Oui j'ai la même erreur avec "motpasse does not exist", il croit que c'est une colonne, c'est ça que je comprends pas, mais ce que m'a donné kaskarot a fonctionné, merci beaucoup c'est super génial

  9. #9
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Heureusement que ce que t'as donné kaskarot fonctionne

    Mais ça m'intrigue que via paramater ça fonctionne pas...
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2008, 12h00
  2. Récuperer le résultat d'une requête SQL dans une variable
    Par DashRendar dans le forum Accès aux données
    Réponses: 3
    Dernier message: 24/01/2008, 11h04
  3. Réponses: 13
    Dernier message: 23/08/2007, 14h45
  4. Réponses: 5
    Dernier message: 20/03/2007, 17h55
  5. Réponses: 5
    Dernier message: 29/01/2006, 23h45

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