Modifier les valeurs dans un datagrid

Résolu
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 - 29 sept. 2006 à 11:40
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 - 3 oct. 2006 à 16:29
Bonjour,


Dans mon application, j'ai une table que j'affiche dans un datagrid.

Pour les 2 premieres colonnes, j'ai des valeurs entiere ( 1 ou 2).

J'aimerais changer ces valeurs en remplacent 1 par Vrai , et 2 par faux mais sans modifier les valeurs de la table.


Comment puis-je faire ?


Dois je utiliser les propriétés d'un datatable ou d'un dataset pour changer ces valeurs ?


Please help ....

31 réponses

cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
3 oct. 2006 à 11:26
Je ne suis pas arriver a Utiliser la méthode de Bidou, car j'ai un probleme de Type de colonne.

Du coup j'ai essayé de modifier ma requete pour arriver a résoudre mon probleme :


SELECT CASE WHEN maColonne1 ='1' THEN 'True' WHEN maColonne1='2' THEN 'False' END AS NomColonne1,

               
              
        maColonne2 ='1' THEN 'True' WHEN
maColonne2='2' THEN 'False' END AS NomColonne2,

               
              
        maColonne3, maColonne4

FROM MaTable ;


Cette Requete Fonctionne lorsque je l'utilise avec la saisi de commande
de mon SGBD (Oracle), mais lorsque je l'insere a .NET j'ai toujours un
probleme de Type de Colonne .


Comment faire pour résoudre ce probleme ? Y a til une solution ?


Please help . . .
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
3 oct. 2006 à 14:38
Salut


Il faut passer par les DatagridTableStyle



http://msdn2.microsoft.com/fr-fr/library/79zaexf1.aspx





Mx
MVP C#
 
3
cs_kurky Messages postés 111 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 27 avril 2010
29 sept. 2006 à 11:43
tu veux modifier les valeurs dans ton datatable et pas sur la grid ? ou inversement ?

Un truc du genre tu saisie un '1' et ca te met 'true' dans ton datatable ?
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
29 sept. 2006 à 11:46
Oui , pour 1 j'aimerai que la valeur afficher dans le datagrid soit 'True'  .


Pour cela , j'aimerai effectuer le moins de modification possible, et surtout ne pas touché a ma table dans la bdd.

J'aimerai simplement changer l'affichage dans le datagrid, si il faut
passer par un datatable ou par le dataset , j'y passerai . . . mais le
but est simplement de remplacer 1 par 'True' dans le datagrid.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
29 sept. 2006 à 12:11
commence par mettre 0 la place de 2 pour false...

ensuite, tu met ton databinding sur ta datatable...en framework normal je sais pas si la conversion en bool se fait automatiquement pour les checkbox ou pas, mais si cest pas le cas, tu vas devoir rajouter une boucle après l'intialisation de ton datagrid pour faire un
MaColonne[i].Checkbox.Checked = Convert.ToBool(ValeurEntiere)
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
29 sept. 2006 à 12:12
et ensuite a chaque modification d'état d'une de tes checkbox, tu le répercute dans le base en t'abonnant a l'évènement de modification d'état des checkbox de ton datagrid. (l'edit, ca manque....)
0
cs_kurky Messages postés 111 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 27 avril 2010
29 sept. 2006 à 12:35
Heu ...
Il n'utilise pas de checkBox il me semble. Mais ca serait plus sympa :)

Et ou peux tu faire un Convert.ToBool ?
Car en faisant "MaColonne[i].Checkbox.Checked" ca soupsonne de remplir le grid ligne par ligne ou de parcourir toutes les lignes après  :x
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
29 sept. 2006 à 13:34
ce qu'il y a cest que je ne suis pas sur a 100% que le convert.ToBool se fasse d'office sur les entiers lors du databinding. donc ce qui risque de se passer s'il ne se fait pas de lui meme, le datagrid sera rempli MAIS les checkbox ne seront pas cochées (encore une fois, cest si le convert n'est pas fait doffice, donc je précise ca pour pallier au cas ou ca ne fonctionnerais pas bien...mais je pense malgré tout qu'avec 0 et 1, ca doit passer sur les checkbox).
donc il faut cocher les checkbox une a une apres (alors que tout le reste du datagrid est remplit correctement).
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
29 sept. 2006 à 13:34
effectivement je n'ai pas de checkbox . . . je veux juste remplacer les
1 par true et les 2 par false dans une colonne du datagrid  .
0
cs_kurky Messages postés 111 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 27 avril 2010
29 sept. 2006 à 13:48
En fait je ne vois pas trop l'utilité de faire ca si tu n'utilise pas de checkbox ou combobox.

Car afficher la chaine "true" ou "false" dans une grid c'est pas super esthétique. De plus si tu veux modifier les valeur tu devra saisie true ou false a la main sans faute, ou gérer l'erreur ce qui est très moche.
Moi ce que je te conseille maintenant c'est que si effectivement l'user peut modifier cette valeur, tu place une colonne de combo et chaque combo est lié à une source où ton DisplayMember est sur "Oui" ou "Non" et ton ValueMember sur 1 ou 2. Dans ce cas, tout marchera facilement sans faire de conversion ni rien :)
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
29 sept. 2006 à 14:13
L'utilisateur ne peut pas modifier les colonnes, mais seulement les lire.

je cherche a changer ces valeurs de facon a ce que ce soit plus lisible
, car 1 ou 2 c'est pas tres parlant alors que True ou False c'est mieux
.
0
cs_kurky Messages postés 111 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 27 avril 2010
29 sept. 2006 à 14:21
Dans ce cas si il n'y a pas de modification possible, parcourir ta grid et remplacer les 1 en true et 2 en false est peut etre le plus simple.
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
29 sept. 2006 à 14:34
peut etre mais je ne sais comment faire .. . . a moins de changer la
requete sql lors de l'injection des données dans le dataset ??

 la solution de chan ger dans le datagrid me parait meilleure . . .?
0
cs_kurky Messages postés 111 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 27 avril 2010
29 sept. 2006 à 14:40
Oui remplace directement dans la grid.
Pour info, t'utilises une DataGrid (framework 1) ou DataGridView (framework 2).
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
29 sept. 2006 à 14:41
Datagrid (framework 1)
0
cs_kurky Messages postés 111 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 27 avril 2010
29 sept. 2006 à 14:51
Faudra m'expliquer un jour pourquoi les gens continuent de bosser sur le Framework 1 :) Y a tellement plus de chose dans le 2.

^^
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
29 sept. 2006 à 14:54
Faudra demander a mon patron . . . :-) , car si je pouvais biensur j'utiliserai le 2
0
cs_kurky Messages postés 111 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 27 avril 2010
29 sept. 2006 à 15:09
Justement ca peut être un sujet de proposition de ta part de passer en v2 :p
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
29 sept. 2006 à 15:40
juste pour information (et ptetre aussi un peu par maniaquerie de ma part ^^), de tous temps, false = 0, true = tout sauf 0....
bref, pour pas te casser la tete avec les conversions de chiffres en bool, remplace ton 2 dans la base par un 0....apres si tu veux un true ou false, tu a juste a faire un Convert.ToBool(MonIntBoolean).ToString()...cest bcp plus simple et clair....et aussi vachement plus carré...la tu vas te faire un if pour savoir ce que tu dois retourner, etc...
0
cs_brute Messages postés 135 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 11 mai 2007 1
29 sept. 2006 à 16:11
Je ne dois en aucun cas touché aux valeurs de la base mais simplement
convertir certaine valeur pour les rendrent plus lisible et plus
compréhensive.

C'est pour ca que je cherche a faire les modification dans le datagrid . . .
0