如何检查DataGridView中是否存在列

时间:2012-10-11 09:09:31

标签: c# winforms ado.net

我想检查列是否存在,我将数据从数据库绑定到DataGridView,并将链接按钮作为列添加到DataGridView。我在按钮单击事件中使用了以下代码。

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;

这是我的问题:如果我点击添加按钮,数据就会被保存,并且会出现点击链接。如果我点击下次点击出现2次。

我只想检查数据网格中是否存在列。我试过了

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

但它不起作用。

2 个答案:

答案 0 :(得分:6)

Contains方法失败,因为列名称为'btn'而非'点击'

正如您在DataGridViewLinkColumn文档中所看到的,属性Name定义了Contains方法的列名称。

所以你的代码应该是

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

但我建议为你的按钮提供一个更有意义的名字,比如'btnLinkForEdit'并相应地更改if。

答案 1 :(得分:0)

您应该检查如下:

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