Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
941 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  problème de remplissage d'une datagrid

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de remplissage d'une datagrid

n°1072140
tedhi-tech
Posté le 04-05-2005 à 16:58:35  profilanswer
 

Bonjour,
 
bon maintenant j'ai un problème beaucoup plus sérieux à priori simple.
Je souhaitais remplir un DataGrid avec un DataSet typé qui contenait l'ensemble des  
infos relatifs aux utilisateurs.
Et ce pour pouvoir remplir mon ComboBox.
Ensuite je souhaitais remplir la DataGrid avec l'évènement "cmbBox_SelectedIndexChanged".
Bon j'ai testé une première solution qui était de récupéré mon dataset typé avec toutes mes infos dedans
et de récupérer la row pour lequel l'utilisateur aurait cliqué dessus dans le combobox  
Cette row serait introduit dans un nouveau dataset.
Et ce dataset serait mis en datasource de la datagrid loll.
 
Mais cela ne fonctionne pas (un peu sioukss com sol :pt1cable: )
 
La deuxième sol serait de ne pas utiliser le dataset typé et donc de créer un dataset classique avec une requête qui récupérerai un row correspond à celle choisi dans le combobox.
 
Cette solution pose quelques problèmes  
 
enfin le problème qui se pose majoritairement est le pb de l'évènement "cmbBox_SelectedIndexChanged" car
pour pouvoir faire un requete sur le choix du l'utilisateur ds le combo ne se fai pa (cmb.selectedvalue)
j'ai essayé l'évènement "cmbBox_SelectionChangeCommitted" j'obtiens de meilleur résultat car je peux choisir ds le comboobx avant de lancer la méthode qui affichera les infos dans la datagrid.
 
bon je ferai pas plus long :pt1cable:  
merci de votre aide  
j'espere que vous comprendrez :pfff:  

mood
Publicité
Posté le 04-05-2005 à 16:58:35  profilanswer
 

n°1073475
tedhi-tech
Posté le 06-05-2005 à 00:47:56  profilanswer
 

sniff aucune réponse ou aide sur mon post
hepl les gars...

n°1074370
moi23372
Posté le 06-05-2005 à 20:49:43  profilanswer
 

Bon voila ce que je te conseille comme solution (testé il y a quelque temps dans une de mes applications)
 
tu fais une connexion avec la BD en mode déconnecté.  
tu fais une boucle qui parcours ce dataset et tu remplis ton combobox (un jeu d'enfant).
ensuite, suffit de traiter ton évènement, comme tu as le nom de l'utilisateur, il suffit de le récupérer dans une variable.  
Donc mtn tu as deux possibilités, si tu as mis dans ton premier dataset toutes les infos nécessaire, il suffit de rechercher dans le dataset, et d'associé au controle (je te conseille pas un datagrid personnellement pour ça :s)
si tu n'as pas toute les infos, tu refait une connexion (en mode déconnecté) à la base de donnée avec comme parametre ton nom d'utilisateur, en gros tu construits ta requete sql pour cet utilisateur la. et la de ton dataset t'en fait ce que tu veux

n°1076804
tedhi-tech
Posté le 09-05-2005 à 19:38:40  profilanswer
 

ok mais pourquoi tu me déconseille une datagrid (de ce que je vous faire je voit pas d'autres alternative)?
secondo je réfléchi à ta proposition et on en reparlera...

n°1077205
moi23372
Posté le 10-05-2005 à 08:22:07  profilanswer
 

si j'ai bien compris, le résultat de ta sélection n'est qu'un tuple (pardonne moi si je me trompe). Dans ce cas la il n'est pas interessant de procéder avec un datagrid étant donné que celui-ci est vraiment convivial quand on a plusieurs lignes/tuples à afficher...
Dans un autre cas, si tu as bien qu'une ligne, la je te conseille de mettre des contrôles séparé et de les remplir en conséquence. Si tu as besoin d'encor un conseil n'hésite pas.

n°1081944
cantonaifo​u
nage vers la surface
Posté le 13-05-2005 à 10:48:00  profilanswer
 

euh as tu essayé dataview et filtre? Dans cette situation je crée une view et je pose des filtre pour la datagrid.
 
Pour ton probleme de "cmbBox_SelectedIndexChanged" as tu activé le autopostback du control? si non, active le ça marchera mieux  ;)


Message édité par cantonaifou le 13-05-2005 à 10:50:15
n°1098939
tedhi-tech
Posté le 26-05-2005 à 23:53:48  profilanswer
 

Bonsoir,
après un long moment d'abscence je reviens me poser sur mon problème, dsl j'étais en exam.
Bon je pense être remonté à la racine du problème car même si mon combobox était rempli je pense que c'est lui qui pose un problème j'en suis quasiment sûre.
 
Voici la méthode qui permet le remplissage du comboBox:
(canto j'ai aussi testé avec un dataview aucune différence par rapport au dataset)

Code :
  1. UtilisateurDataset ds = Utilisateur.GetUtilisateur();
  2.         cmbBox.Items.Clear();
  3. DataView dv = new DataView(ds.utilisateur);
  4. dv.Table = ds.utilisateur;
  5. cmbBox.DataSource = dv;
  6. cmbBox.DisplayMember = dv.Table.Columns["login"].ColumnName;
  7. cmbBox.ValueMember = dv.Table.Columns["num"].ColumnName;


Donc voila, à ce moment l'appli plante mais remonte un message d'erreur de je ne sais où :??:  
 
"Le préfixe de colonne 'System.Data' ne correspond ni à un nom de table ni à un nom d'alias dans la requête"
 
merci d'avance de votre aide :jap:  

n°1098952
FlorentG
Unité de Masse
Posté le 27-05-2005 à 00:09:38  profilanswer
 

tedhi-tech a écrit :

Voici la méthode qui permet le remplissage du comboBox:
(canto j'ai aussi testé avec un dataview aucune différence par rapport au dataset)

Code :
  1. UtilisateurDataset ds = Utilisateur.GetUtilisateur();
  2.         cmbBox.Items.Clear();
  3. DataView dv = new DataView(ds.utilisateur);
  4. dv.Table = ds.utilisateur;
  5. cmbBox.DataSource = dv;
  6. cmbBox.DisplayMember = dv.Table.Columns["login"].ColumnName;
  7. cmbBox.ValueMember = dv.Table.Columns["num"].ColumnName;



Vraiment chelou ce code :

  • Assignation de la datatable lors du constructeur du dataview, puis réassignation avec la même datatable [:johneh]  
  • Utilisation de formes compliquées : dv.Table.Columns["login"].ColumnName Pourquoi pas mettre "login" directement tout de suite ? Surtout que si le nom de colonne change, va falloir de toute manière rechanger la ligne

cmbBox.Items.Clear();
cmbBox.DataSource = new DataView(Utilisateur.GetUtilisateur().utilisateur);
cmbBox.DisplayMember = "login";
cmbBox.ValueMember = "num";

n°1098959
tedhi-tech
Posté le 27-05-2005 à 00:23:44  profilanswer
 

mouai mais bon c'est de la syntaxe le problèm persiste...

n°1098962
FlorentG
Unité de Masse
Posté le 27-05-2005 à 00:26:03  profilanswer
 

Pour l'erreur chelou, c'est à quel endroit qu'elle se produit ?

mood
Publicité
Posté le 27-05-2005 à 00:26:03  profilanswer
 

n°1098964
tedhi-tech
Posté le 27-05-2005 à 00:27:55  profilanswer
 

ma méthode affiche du combobox est lancé dans le constructeur du formulaire, il me balance l'erreur mais apres il me rempli quand meme le combobox...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  problème de remplissage d'une datagrid

 

Sujets relatifs
Problème de stockage de données d'un formulaire...Problème lié a l'ouverture de fichier
Probleme JSP JavaScript !!Probleme JSP JavaScript !!
Probleme JSP JavaScriptProblème FRAME et HEADER
Probleme de saut de ligne[JAVA/Résolu] problème de rafraichissement avec une image ...
Probleme d'accent avec FileReaderProbleme Access à MySQL
Plus de sujets relatifs à : problème de remplissage d'une datagrid


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR