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 :

Liaison entre un comboBox et un dataset


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 101
    Points : 64
    Points
    64
    Par défaut Liaison entre un comboBox et un dataset
    Bonjour,

    J'ai une liste d' entree. Chaque entree est liée à une rubrique.
    Pour afficher cela j'ai un datagridView lié un dataset. Dans ce dataset il y a deux tables:

    entree: représente la liste des entrees
    Cette table contient 3 colonnes:
    - le code de l'entree
    - le nom de l'entree
    - l'id de la rubrique à laquelle il est lié

    Rubrique: représente la liste des rubriques
    Cette contient deux colonnes
    - l'id de la rubirque
    - le nom de la rubrique

    Les rubriques sont afficher dans une liste dans la datagridview.
    Toutes les colonnes de la table entree sont affiché.

    Donc le datagridView contient 3 colonnes + 1 qui est une liste (DataGridViewComboBoxColumn) de toutes le rubriques.

    Voici mon problème, je n'arrive pas à liés rubrique et entree.
    J'aimerai qu quand je selectionne une rubirque dans la liste la colonne id_rubrique de la table entree soit automatiquement inscrite.
    Et que quand je remplit mon dataset la rubrique de la liste soit automatiquement selectionner en fonction de l'id_rubrique de la table entree.

    J'ai reussi à afficher la liste de mes entree, a afficher la liste de mes rubriques dans une liste. Mais la liaison que j'ai créer ne marche pas.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    DataSet dataset_entrees = new DataSet();
    //initialisation des dataset
    initTableEntree();
    initTableRubrique();
    createRelationEntreeRubrique();
    //Affichage des entrees dans la datagridView
    dataSet_entreesToDataGridView_entrees();
     
    private void initTableEntree()
            {
                dataset_entrees = new DataSet();
                //ajout des colonnes
                dataset_entrees.Tables.Add("entree");
                dataset_entrees.Tables["entree"].Columns.Add("Code entree", Type.GetType("System.Int32"));
                dataset_entrees.Tables["entree"].Columns.Add("Nom de l'entree", Type.GetType("System.String"));
                dataset_entrees.Tables["entree"].Columns.Add("id_rubrique", Type.GetType("System.Int32"));
                dataset_entrees.Tables["entree"].Columns[0].Unique = true;
                dataset_entrees.Tables["entree"].Columns[0].AllowDBNull = false;
                dataset_entrees.Tables["entree"].Columns[1].AllowDBNull = false;
                remplirEntree();//cette fontion importe les données de la BDD vers la table entree            
            }
     
     
     //initialise le dataset contenant la liste des rubriques
            private void initTablerRubrique()
            {
                //ajout des colonnes
                dataset_entrees.Tables.Add("rubrique"); ;
                dataset_entrees.Tables["rubrique"].Columns.Add("id_rubrique", Type.GetType("System.Int32"));
                dataset_entrees.Tables["rubrique"].Columns.Add("Rubrique", Type.GetType("System.String"));
                remplirTableRubrique();//cette fonction importe les données de la BDD vers la table rubrique
            }
     
     private void createRelationEntreeRubrique()
            {
                DataRelation relation = new DataRelation("entree-rubrique",dataset_entrees.Tables["rubrique"].Columns[0],
                                                                           dataset_entrees.Tables["entree"].Columns[2]);
                dataset_entrees.Relations.Add(relation);
            }
     
     //Cette fonction insère toutes les entrées dans le datagridView_entree
            private void getEntreesToDataGridView_entrees()
            {
     
                this.dataGridView_entrees.DataSource = dataset_entrees.Tables["entree"];
                DataGridViewComboBoxColumn comboboxColumn = CreateComboBoxColumn_rubrique();
                this.dataGridView_entrees.Columns.Add(comboboxColumn);
            }
     
            //création d'un datagridviewComboBoxColum
            private DataGridViewComboBoxColumn CreateComboBoxColumn_rubrique()
            {
                DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
     
                column.DropDownWidth = 160;
                column.Width = 90;
                column.MaxDropDownItems = 10;
                column.FlatStyle = FlatStyle.Flat;
                column.Name = "Rubrique";
                column.DataSource = dataset_entrees.Tables["rubrique"];
                column.ValueMember = "id_rubrique";
                column.DisplayMember = "Rubrique";
     
                return column;
            }
    Ma liaison ne marche pas, Si je selectionne une valeur dans ma liste de rubrique la colonne id_rubrique de la table entree ne se modifie pas et quand je remplit ma table entree la rubrique ne se selectionne pas dans la liste.

    COmment faire?

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 101
    Points : 64
    Points
    64
    Par défaut
    C'est bon j'ai trouvé, il suffit simplement de renseigner l'attribut datatPropertyName du DataGridViewComboBoxColumn pour faire la liaison.

    La fonction createRelation est inutile.

    Merci pour mon aide

Discussions similaires

  1. Liaison entre ComboBox et TextBox
    Par adil54 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/08/2008, 16h27
  2. [VB.Net]Liaison entre listbox et combobox
    Par DonF dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/09/2006, 17h44
  3. Opérer une liaison entre 2 DBLookup
    Par pey dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 10h11
  4. Liaison entre un dblookupcombobox (filtre) et un dbgrid
    Par naw dans le forum Bases de données
    Réponses: 9
    Dernier message: 22/08/2004, 12h12
  5. recherche composant hybride entre le ComboBox et le DBLookup
    Par Calixte dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/06/2004, 13h32

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