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 :

Retour de champ vide lors d'une recherche


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut Retour de champ vide lors d'une recherche
    Bonjour a tous, je cherche à effectuer une recherche sur ma BDD accès avec le nom de mes périphériques puis de l'afficher dans une datagridview. Ma connexion fonctionne parfaitement, car j'arrive à effectuer des requêtes SELECT, INSERT, UPDATE et DELETE. Mon problème est le suivant, lorsque je veux afficher mes données avec pour critère le nom de mes périphériques, pour certaine recherches, ma requête me renvoient des champs vides. J'ai cherché des points communs entre les recherches ne marchant pas, mais je ne vois rien qui diffère spécialement des autres données.
    J'ai réussi a le faire sur une autre table en utilisant la même technique, et sa marche.

    Voila mon 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
     
            //requête pour effectuer une recherche par critére
            public string selectbyperipherique(string nom_peripherique)
            {
                this.rq_sql = @"SELECT nom_peripherique, nom_client, prenom_client, nom_switch, type_connexion FROM (((Peripheriques INNER JOIN Clients ON Clients.ID_peripherique = Peripheriques.ID_peripherique) INNER JOIN Switchs ON Switchs.ID_switch = Peripheriques.ID_switch) INNER JOIN Connexion ON Connexion.ID_connexion = Peripheriques.ID_peripherique) WHERE nom_peripherique = '" + nom_peripherique + "';";
                return this.rq_sql;
            }
     
            //processus de recherche
            public System.Data.DataSet selectbyperipherique(string rows, string nom_peripherique)
            {
                return this.oCAD.m_GetRows(oRechercher.selectbyperipherique(nom_peripherique), rows);
            }
     
            // affichage
            private void button1_Click(object sender, EventArgs e)
            {
                if (txt_nom.Text != "")
                {
                    Logiciel.pcs_rechercher lister = new pcs_rechercher();
                    DataSet liste_baie = lister.selectbyperipherique("rows", txt_nom.Text);
                    this.dataGridView_liste_peripherique.DataSource = liste_baie;
                    this.dataGridView_liste_peripherique.DataMember = liste_baie.Tables[0].TableName;
                    this.dataGridView_liste_peripherique.Refresh();
                }
     
                else
                {
                    MessageBox.Show("Champ vide, veuillez le remplir.");
                }
            }
    Aidez moi !!!! Merci d'avance

    Cordialement Chrozak.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 169
    Points
    169
    Par défaut
    Salut,

    Es-tu sûr d'avoir un périphérique qui porte le nom que tu recherches ?
    Es-tu sûr que ton périphérique porte des données dans toutes les tables de ta jointure ?

    Si jamais une table ne contient pas les données concernant ta recherche, aucune ligne ne sera remontée (INNER JOIN). Utilise plutôt des LEFT JOIN dans ce cas.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    Aurait-tu une corde ? -_- En me demandant si j'ai des données si mon périphérique porte des données dans toutes mes tables, j'ai vérifier les tables de ma jointure et la je me rend compte d'une faute au niveau de l'une d'entre elle alors que j'ai du la relire une vingtaine de fois auparavant ... Bref maintenant sa marche, tu m'as aidé, mais pas de la façon que tu le voulais xD.
    Merci beaucoup !!

    Néanmoins ton histoire de LEFT JOIN m'intéresse, elle fonctionne comme la INNER ?
    Et elle laissera juste ce champ vide si il n'y a pas de donnée concernant cette recherche tout en affichant les autres ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 169
    Points
    169
    Par défaut
    Je t'avoue que je n'avais pas lu en détail ta requête, mais maintenant je vois effectivement l'erreur commise

    Pour le LEFT JOIN tu as tout à fait raison. Pour plus de détails il existe plein de tutos sur les différents types de jointure et leur comportement

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    Je vais de ce pas changer mes INNER en LEFT la ou j'en ai besoin, en tout cas merci beaucoup .

    Bonne journée, Cordialement Chrozak.

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

Discussions similaires

  1. [MySQL] Les champs sont vides lors d'une mise à jour (update)
    Par gregos13 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/04/2006, 08h01
  2. Cheval de Troie lors d'une recherche google
    Par SLE dans le forum Sécurité
    Réponses: 8
    Dernier message: 14/03/2006, 17h41
  3. Probleme lors d'une recherche sur les forums
    Par JUSTIN Loïc dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 8
    Dernier message: 27/07/2005, 12h22
  4. [LG]Runtime Error lors d'une recherche dans un fichier
    Par Fraynor dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2005, 22h51
  5. Enlever la surbrillance lors d'une recherche avec vi
    Par sekiryou dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 04/03/2004, 13h55

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