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

Windows Forms Discussion :

[C# + Datagrid] problème affichage


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut [C# + Datagrid] problème affichage
    Bonjour à tous,
    je viens vous demander un peu d'aide sur un soucis que je rencontre.

    Alors j'ai une application contenant un datagrid.
    Celui-ci se rempli grace à une requete.

    lors d'un clic sur une des lignes du datagrid je rempli automatiquement 2 textBox.
    Jusque la aucun problème.

    Numéro | Nom
    1 | TOTO
    2 | AAA
    3 | BBB
    4 | CCC

    Lorsque je lance mon appli la requete suivante s'execute :
    select * from "essai" order by numéro;

    quand je clic sur la 2eme ligne de mon datagrid, cad "2 | AAA"
    mes 2 textbox récupere bien "2" et "AAA"

    Voila maintenant ou ca coince, lorsque je fait un classement en fonction des champs affiché, par exemple : sur le Nom

    le tableau donne :

    Numéro | Nom
    2 | AAA
    3 | BBB
    4 | CCC
    1 | TOTO

    et si je reclique sur la 2eme ligne cad "3 | BBB"
    Lors de l'affichage sur mes textbox ilo m'affichera encore "2" et "AAA".

    Comme si il avait fait le tri sur le datagrid mais pas sur le contenu en lui meme.

    J'espere avoir été assez clair lol.

    je n'ai pas la moindre idée d'ou ca pourrai provenir.
    Alors si quelqu'un pouvais m'aider ca serai tres genti lde sa part.

    Voila et merci d'avance.

  2. #2
    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
    Fais voir ton code qui récupère les données de la grille

  3. #3
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    Salut,

    Quand tu tri ton datagrid, tu change ta requête de d'affichage?? Avec un order by puis tu bind a nouveau??

    Fk

  4. #4
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Merci pour vos réponses.

    Voici 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
     
                            // Requete de présence de l'enregistrement
                            MyQuery = "select ABC.ABC_badge as `Identifiant`, personnel.per_nom as `Nom` ,ABC.ABC_commande as `Authorisation`, ABC.ABC_date as `Dernière modif`  from ABC, personnel where ABC.ABC_badge = personnel.per_id ")";
     
                            // Initialisation de l'adapter
                            odataAdapt.SelectCommand = odataCmd;
     
                            // Initialisation de la commande
                            odataCmd.Connection = odataCnct;
                            odataCmd.CommandText = MyQuery;
     
                            // Initialisation de l'adapter
                            odataAdapt.SelectCommand = odataCmd;
                            odataAdapt.Fill(dsLocal);
     
                try
                {
     
                    // Affichage du resultat
                    dgLocal.DataSource = dsLocal.Tables["Table"].DefaultView;
                    dgLocal.CaptionText = MyTitle;
                    dgLocal.Tag = nMode;
                }
                    sbStatus.Text = "Requete à la base de données terminée";
                }
                catch
                {
                    sbStatus.Text = "Requete à la base de données annulée";
                }
    Voila, par contre je ne vois pas ce qu'est un bind.
    Merci d'avance

  5. #5
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Citation Envoyé par STB_Fk Voir le message
    Salut,

    Quand tu tri ton datagrid, tu change ta requête de d'affichage?? Avec un order by puis tu bind a nouveau??

    Fk
    Non j'utilise un order by uniquement lors de l'initialisation de mon application.
    Ensuite pour les tri du datagrid, je clique directement sur le nom des champs pour qu'il me les tri automatiquement sans que j'ai eu le moindre codage a faire.

    Voila j'espere avoir été clair

    Merci à vous 2 en tout cas

  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
    En fait, ce que je voulais voir dans ton code, c'était comment tu faisais pour savoir quelle ligne était cliquée dans la grille. A mon avis l'erreur est à ce niveau là.

  7. #7
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Citation Envoyé par tomlev Voir le message
    En fait, ce que je voulais voir dans ton code, c'était comment tu faisais pour savoir quelle ligne était cliquée dans la grille. A mon avis l'erreur est à ce niveau là.
    J'utilise la methode Mouse_up, mais je ne pense pas que ce soit ca mon problème.
    Enfin je n'en suis pas sur non plus lol

    Voici 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
            private void dgSalarie_MouseUp(object sender, MouseEventArgs e)
            {
     
                tbRead.Text = "";
                tbNomRead.Text = "";
     
                //recupérer les coordonnées de la souris
                Point p = new Point(e.X, e.Y);
                //déterminer la partie clickée du datagrid
                DataGrid.HitTestInfo HTI = dgSalarie.HitTest(p);
                //si c'est un type 'cellule'
                if (HTI.Type == DataGrid.HitTestType.Cell)
                {
                    //définir la cellule en cours
                    dgSalarie.CurrentCell = new DataGridCell(HTI.Row, HTI.Column);
                    //selectionner la ligne correspondante
                    dgSalarie.Select(HTI.Row);
                    numeroLigne = HTI.Row;
                }
     
                try
                {
                    DataRow MyDataRow = dsSalarie.Tables["Table"].Rows[dgSalarie.CurrentCell.RowNumber];
     
                    // Modifier ou programmer salariés
                    tbBadgeName.Text = MyDataRow["Nom"].ToString();
                    tbBadgeID.Text = MyDataRow["Identifiant"].ToString();
    J'espere que c'a t'aidera lol, en tout cas merci

Discussions similaires

  1. [Débutant] Problème affichage form suite insertion Datagrid view (connection BDD Access)
    Par Christian8021 dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/09/2014, 15h53
  2. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  3. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

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