[.NET C# VS2005] Soucis sur un DataGridView
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:
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:
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