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#] Problème de DataBiding


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 94
    Points
    94
    Par défaut [C#] Problème de DataBiding
    Bonjouor,

    Voilà, j'ai un petit problème (2 en fait):

    Je voudrais faire du dataBiding dans mon application pour un formulaire ou j'affiche des données en lecture et en modification.

    Mais seulement le problème survient lorsque je change de valeur dans ma Combobox, rien ne change ailleurs....

    Je ne comprend pas comment ça se fait puisque il me semblait que le databinding devrait faire son job automatiquement pour syncroniser les différents éléments non?

    En fait je voudrais que dans ma combobox j'aie une liste d'utilisateurs et que dans les autres textboxes, les valeurs changent automatiquement lorsque je change d'utilisateur dans ma combobox.

    Voici une image de ce que je voudrais:



    Et un deuxième problème se pose, c'est que je voudais afficher une liste des factures de cet utilisateur, dans une listView ou datagrid à côté, mais je ne comprend pas comment faire pour lier le databiding de la combobox avec celui des factures, puisque cela ne se trouve pas dans le même table.

    Les factures, elles, se trouvent dans une autre table qui a comme clé étrangère l'id de l'utilisateur.

    Vous pouvez m'aider? Je vous en serais très reconnaissant... Merci!

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Pour le 1er problème, si tu as bien binder chacun de tes contrôles aux champs adéquat de ton DataAdapter, cela devrait fonctionner sans pb....

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 94
    Points
    94
    Par défaut
    Eh bien c'est tout à fait ce que j'ai fait, mais quand je change de client dans ma ComboBox, cela ne change rien ailleurs.

    Le datasouce de ma combobox est la table du dataset sur lequel sont databindés mes autres contrôles...

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    montres ton code et nous verrons bien si quelquechose doit être réajusté
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 94
    Points
    94
    Par défaut
    En fait j'ai du me passer de ma Combobox. Mais cela ne fonctionnne toujours pas.

    J'ai 3 textBoxes databindées sur un champ d'une table d'un dataset et je veux affichet les valeurs. Le dataset se remplit, mais rien ne s'affiche...

    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
     
     
     
     
     
    private void fillDataSet()
    		{
    			try
    			{
    				ds.MaTable.Clear() ;
    				sqlDaMaTable.Fill(ds.MaTable) ;
    			}
    			catch (Exception ex)
    			{
    				MsgException.ShowExceptionBox(ex) ;
    			}
    		}
    Puis je dataBinde:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    this.txtBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ds, "MaTable.MonChampTexte"));

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    effectivement c'est très insuffisant
    faut reprendre les étapes une par une
    1. Binder le combobox
    2. créer les relation de binding grâce à un manager
    3. binder les texbox selon relations
    4. associer les evenements concernés
    Donc si tu le veux commences par nous donner les éléments précis (directement les vrai noms de table et champs etc...) pour faire le n°1
    nous t'aideront pour la code, n'hésites pas à nous mettre le tien si tu en as déjà un en cours
    Allons y pour le combo
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 94
    Points
    94
    Par défaut
    c'est à dire que je passe par le designer pour le databiding, mais je vais faire un petit formulaire et vais vous envoyer son code, car le code original ne tiendrait pas sur cette page! ;-)

    Merci!

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par le_marsupilami_2001
    c'est à dire que je passe par le designer pour le databiding, mais je vais faire un petit formulaire et vais vous envoyer son code, car le code original ne tiendrait pas sur cette page! ;-)
    Merci!
    pour l'instant contente toi de ce qui concerne la combo uniquement, une étape à la fois
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    Alors en fait j'ai réussi à regler mon problème, qui venait du fait que j'avais plusieurs lignes dans la table sur laquelle j'étais databindé.

    J'ai mis une clause dans mon SELECT et c'est bon.

    Par contre j'ai un autre problème que je n'arrive pas à résourdre, que vous avez certainement eu aussi,

    J'ai beaucoup de contrôles sur mon formulaire, et j'ai donc les databindings qui sont faits sur plusieurs tables et vues.

    Alors voila, comme j'ai une vue au travers de laquelle je ne peux pas faire de mise à jour à cause du fait qu'il lui manque des clés primaires, j'utilise en parallèle une autre table (associative) dans laquelle j'insère les valeurs lorsque je met à jour.

    Je parviens à mettre à jour ce que je veux, mais je ne parviens pas à faire apparaitre les nouvelles valeurs dans la textBox qui est dataBindée sur la vue....


    Voila un petit bout de 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    private void setValeur() 
    		{
     
    			int idValeur = -1 ;
    			tdsData.MA_TABLE_TYPEERow r = null ;
     
    			try
    			{
    				idValeur = 1 ;
     
    				r = tdsData.MA_TABLE_TYPEE.FindByID_MaValeur(idValeur) ;
     
    				r.Valeur2 = 2 ;
     
    				// Mettre a jour la base de données
    				sqldaMatableTypee.Update(tdsData.MA_TABLE_TYPEE) ;
     
    				// Ok quand je vais dans la base de données, je vois que la valeur a changé
     
    				// Maintenant comme j'ai du databiding sur une vue qui utilise cette table, je veux
    				// également que les changements aient lieu afin de les afficher
     
    				// Mais c'est la que je ne sais pas comment faire...
     
    				// Voila ce que j'ai essayé:
     
    				//Mettre a jour la vue aussi de l'introduction des données pour le databinding
     
    				sqldaMaVueDeMatableTypee.Update(tdsData.MA_VUE_TABLE_TYPEE) ; // Ne fonctionne pas
     
    				// Supprimer les données de la table et remplir à nouveau la vue
     
    				tdsData.MA_VUE_TABLE_TYPEE.Clear() ;
     
    				sqldaMaVueDeMatableTypee.Fill(tdsData.MA_VUE_TABLE_TYPEE) ; // Ne fonctionne pas... Pire, je ne vois plus les 
    				// données, tout disparait des textboxes
     
     
    				// Je ne sais plus quoi faire, j'ai essayé d'autres choses, mais rien ne marche et je suis lé court de 
    				// méthodes.... :-(
     
     
    				}
    			catch (Exception ex)
    			{
    				MessageBox.Sho(ex.Message) ;
    			}
     
    		}
    Je suis sûr que quelqu'un d'entre vous est capable de voir ce qui ne va pas ;-)

    Je vous remercie d'avance!

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

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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