Bonjour à toutes et à tous !
J'ai un petit soucis sur un DataGridView. J'ai deux colonnes "Identifiant" et "Libellé". Ce DataGridView est rempli par un DataSet. Au moment où il est rempli, il me rempli correctement mes deux colonnes mais il en ajoute deux autres, les deux mêmes, apparement directement issue de la base puisque les titres sont en fait le nom des champs de la base.
Je vous présente le code et en pièce jointe vous trouverez le résultat de l'exécution... :
Définition du DataGridView dans le Form.Designer.cs :
Je crois qu'il y a tout ! C'est le code généré par Visual Studio 2005, je n'ai strictement rien touché !
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 this.TableauTournees = new System.Windows.Forms.DataGridView(); this.ColonneIdentifiant = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ColonneLibelle = new System.Windows.Forms.DataGridViewTextBoxColumn(); // // TableauTournees // this.TableauTournees.AllowUserToAddRows = false; this.TableauTournees.AllowUserToDeleteRows = false; this.TableauTournees.AllowUserToOrderColumns = true; this.TableauTournees.BackgroundColor = System.Drawing.Color.White; this.TableauTournees.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.TableauTournees.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.ColonneIdentifiant, this.ColonneLibelle}); this.TableauTournees.Location = new System.Drawing.Point(6, 73); this.TableauTournees.MultiSelect = false; this.TableauTournees.Name = "TableauTournees"; this.TableauTournees.ReadOnly = true; this.TableauTournees.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.TableauTournees.Size = new System.Drawing.Size(760, 159); this.TableauTournees.TabIndex = 6; // // ColonneIdentifiant // dataGridViewCellStyle1.BackColor = System.Drawing.Color.White; dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; this.ColonneIdentifiant.DefaultCellStyle = dataGridViewCellStyle1; this.ColonneIdentifiant.Frozen = true; this.ColonneIdentifiant.HeaderText = "Identifiant"; this.ColonneIdentifiant.MinimumWidth = 30; this.ColonneIdentifiant.Name = "ColonneIdentifiant"; this.ColonneIdentifiant.ReadOnly = true; this.ColonneIdentifiant.Width = 200; // // ColonneLibelle // dataGridViewCellStyle2.BackColor = System.Drawing.Color.Silver; this.ColonneLibelle.DefaultCellStyle = dataGridViewCellStyle2; this.ColonneLibelle.Frozen = true; this.ColonneLibelle.HeaderText = "Libellé"; this.ColonneLibelle.MinimumWidth = 50; this.ColonneLibelle.Name = "ColonneLibelle"; this.ColonneLibelle.ReadOnly = true; this.ColonneLibelle.Width = 500; //////////////// private System.Windows.Forms.DataGridView TableauTournees; private System.Windows.Forms.DataGridViewTextBoxColumn ColonneIdentifiant; private System.Windows.Forms.DataGridViewTextBoxColumn ColonneLibelle;
Voici comment j'utilise ce DataGridView :
Et donc en pièce jointe, vous pouvez voir ce que cela donne à l'exécution. Moi je ne voudrais garder que les colonnes que j'ai moi même définies : Libellé et Identifiant !
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 private void BoutonAfficherTournees_Click(object sender, EventArgs e) { //Objets relatifs à la récupération de toutes les tournées DataSet remplissageTournee = null; try { //Objet de stockage des tournées remplissageTournee = new DataSet(); //Requête de récupération des tournées String requete = "select TACHE.CLETACHE, TACHE.LIBTACHE from TACHE where TACHE.CLNTACHE = 'Tournee' and NOSCENARIOTCH = " + CaseScenario.Value + " and CLESERVICE = " + SelectionService.SelectedValue; //Connexion à la base de données et exécution de la requête de récupération des tournées OleDbDataAdapter connexion = new OleDbDataAdapter(requete, "Provider=msdaora;Data Source=monServeur;User ID=monUser;Password=monMDP;"); //Remplissage de l'objet de stockage connexion.Fill(remplissageTournee); //Affichage des service dans le tableau de tournées TableauTournees.DataSource = remplissageTournee.Tables[0]; TableauTournees.Columns[0].DataPropertyName = remplissageTournee.Tables[0].Columns[0].ToString(); TableauTournees.Columns[1].DataPropertyName = remplissageTournee.Tables[0].Columns[1].ToString(); } catch (Exception) { //Si la connexion ne s'est pas faite, on déconnecte le tableau de tournée et de sa source TableauTournees.DataSource = null; //On désactive la sélection du tableau de tournées TableauTournees.ClearSelection(); //On affiche un message d'erreur qui dit que la connexion à la base de données ne s'est pas faite MessageBox.Show("La connexion à la base de données n'a pu être réalisée. Dans le Menu Paramètres > Paramètres de la base de données, vérifier que tout les paramètres sont correctement définis", "Connexion à la base de données impossible", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
Merci d'avance pour vos réponses !
@+
Antoine
Partager