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 :
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;
Je crois qu'il y a tout ! C'est le code généré par Visual Studio 2005, je n'ai strictement rien touché !
Voici comment j'utilise ce DataGridView :
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);
   }
 
}
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 !
Merci d'avance pour vos réponses !
@+
Antoine