4 votes

Comment vérifier l'existence d'une colonne dans un DataGridView ?

Je veux vérifier si la colonne existe ou non, je lie les données d'une base de données à l'interface de l'utilisateur. DataGridView et j'ai ajouté le bouton de lien en tant que colonne avec l'élément DataGridView . J'ai utilisé le code suivant dans l'événement de clic du bouton.

con.Open();
SqlDataAdapter dadatagrid1 =
    new SqlDataAdapter("SELECT * FROM Stocktransferlocation", con);
DataSet dsdatagrid1 = new DataSet();
dadatagrid1.Fill(dsdatagrid1);
dataGridView_stocktransferlist.DataSource = dsdatagrid1.Tables[0];
con.Close();

DataGridViewLinkColumn btn = new DataGridViewLinkColumn();
dataGridView_stocktransferlist.Columns.Add(btn);
btn.HeaderText = "Click";
btn.Text = "Click Here";
btn.Name = "btn";
btn.UseColumnTextForLinkValue = true;

Voici mon problème : si je clique sur le bouton d'ajout, les données sont enregistrées et le lien de clic apparaît. Si je clique sur le bouton suivant, le lien apparaît 2 fois.

Je veux juste vérifier si la colonne existe dans la grille de données. J'ai essayé

if (dataGridView_stocktransferlist.Columns.Contains("Click") == true)

mais ça ne marche pas.

11voto

Steve Points 96477

En Contains échoue car le nom de la colonne est btn et non Cliquez. .

Comme vous pouvez le voir sur le DataGridViewLinkColumn la documentation, est la propriété Name qui définit le nom de la colonne que le Contains fonctionne.

Votre code devrait donc être

if (dataGridView_stocktransferlist.Columns.Contains("btn") == true
{
    .....
}

mais je suggère de donner un nom plus significatif à votre bouton comme 'btnLinkForEdit' et de changer le if en conséquence.

0voto

mihirj Points 949

Vous devez vérifier comme suit :

if (dataGridView_stocktransferlist.Columns.Contains("btn"))
{
  //your code
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X