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 Presentation Foundation Discussion :

Problème avec DataGrid


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Par défaut Problème avec DataGrid
    Salut
    J'ai un DataGrid que je rempli à partir d'un ComboBox.
    Lorsque j'appuie sur un item du ComboBox je remli un DataSet et le DataSet rempli le DataGrid
    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
     
     Model.DsVente ds = new ModuleVente.Model.DsVente();
                string connetionString = null;
                SqlConnection connection;
                SqlCommand command4;
                SqlDataAdapter adapter4 = new SqlDataAdapter();
                connetionString = "Data source=(local);initial catalog=Stock;uid=sa;password=";
                string secondSql = "Select * from ARTICLE where ARTICLE.ID_ART = " + comboBox2.SelectedValue + "";
                connection = new SqlConnection(connetionString);
                connection.Open();
                command4 = new SqlCommand(secondSql, connection);
                adapter4.SelectCommand = command4;
                adapter4.Fill(ds, "Table4") ; 
                dataGrid1.DataContext = ds.Tables["Table4"];
    Mon problème est que lorsque je choisi 2 fois: le deuxieme article écrase le premier dans mon DataGrid
    J'ai pas su quoi faire
    Merci de me répondre

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGrid1.DataContext = ds.Tables["Table4"];
    Le code précédent réaffecte le DataContext, donc il est normal que tes données soit remplacées. Est-ce que c'est ce que tu entends par "le deuxieme article écrase le premier dans mon DataGrid" ?

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Par défaut
    Merci pour votre réponse
    Oui le problème est que j'ai une seule ligne malgré que je choisi 2 fois
    Qu'est ce que je dois faire ??

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Si tu veux garder les DataSet comme tu as fait, tu peux mémoriser les ID_ART sélectionnés dans une liste (ou dico) et construire ta requête en fonction de cette liste.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // a chaque clic d'un item de la combo, tu ajoutes à ta liste si pas déjà présent
    if(!listeID.Contains(comboBox2.SelectedValue))
      listeID.Add(comboBox2.SelectedValue);
    string secondSql = "Select * from ARTICLE where ARTICLE.ID_ART  = " + listeId.First();
    for(int i = 1; i < listeId.Count; i++) {
      secondSql += " and ARTICLE.ID_ART = " + listeId[i];
    }

    Le code est à vérifier... et il y a surement plus propre.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Par défaut
    Merci
    Je vais essayé votre code

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Par défaut
    Citation Envoyé par binoo Voir le message
    Si tu veux garder les DataSet comme tu as fait, tu peux mémoriser les ID_ART sélectionnés dans une liste (ou dico) et construire ta requête en fonction de cette liste.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // a chaque clic d'un item de la combo, tu ajoutes à ta liste si pas déjà présent
    if(!listeID.Contains(comboBox2.SelectedValue))
      listeID.Add(comboBox2.SelectedValue);
    string secondSql = "Select * from ARTICLE where ARTICLE.ID_ART  = " + listeId.First();
    for(int i = 1; i < listeId.Count; i++) {
      secondSql += " and ARTICLE.ID_ART = " + listeId[i];
    }

    Le code est à vérifier... et il y a surement plus propre.
    Le code ne marche pas
    est ce qu'il y aurait un autre solution SVP

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Le code ne marche pas
    est ce qu'il y aurait un autre solution SVP
    Tu peux détailler ?
    Comme je le dis le code est à vérifier (car taper sans tester...). Mais dans le principe il devrait fonctionner, même si j'ai répondu sans trop me poser de question, car je ne vois pas trop l'intérêt d'un tel code... Car si j'ai bien compris, tu as une ComboBox qui possède tous les enregistrements et lorsque tu cliques sur un item de la ComboBox, il s'ajoute à la DataGrid.

    Autant afficher tous les articles dans la DataGrid et appliquer éventuellement des filtres/tris sur ta DataGrid par la suite...

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Par défaut
    Salut,
    Avec cette discussion j'ai joint une image de mon interface.
    J'ai un problème avec le datagrid : il n'affiche qu'une seule ligne
    Voici le contexte de mon interface:
    Je choisi une catégorie puis un article et j'appuie sur le bouton +. une requête Select affiche les informations de mon article selon mon choix
    Le problème est que lorsque je choisie un autre article, mon deuxième choix écrase le premier
    c'est très important pour moi
    Images attachées Images attachées  

  9. #9
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Peut tu nous donner le code que tu utilises pour fournir les éléments à ta grille stp ?

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Par défaut
    J'ai mi le code au début de la discussion

Discussions similaires

  1. [Debutant]problème avec DataGrid
    Par chlebta*tsotsi dans le forum C#
    Réponses: 3
    Dernier message: 14/05/2011, 15h33
  2. Problème avec DataGrid
    Par walid kh dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/03/2010, 16h10
  3. [VB express 2008] Problème avec datagrid
    Par libremax dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/10/2009, 11h36
  4. [Struts-Layout] Problème avec Datagrid
    Par Le Pharaon dans le forum Struts 1
    Réponses: 15
    Dernier message: 25/07/2007, 14h13
  5. [VB 6.0] - problème avec Datagrid pour l'affichage de valeurs
    Par jimbololo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2007, 09h57

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