如何检查DataGridView中是否存在列

csu*_*ura 2 c# ado.net winforms

我想检查列是否存在,我将数据从数据库绑定到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;
Run Code Online (Sandbox Code Playgroud)

在这里我的问题是:如果我点击添加按钮,数据将被保存并出现点击链接.如果我点击下次点击出现2次.

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

if (dataGridView_stocktransferlist.Columns.Contains("Click") == true)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Ste*_*eve 6

Contains方法失败,因为列名称为"btn"而不是"Click".

正如您在DataGridViewLinkColumn文档中看到的那样,是Name定义Contains方法所依据的列名称的属性.

所以你的代码应该是

if (dataGridView_stocktransferlist.Columns.Contains("btn") == true
{
    .....
}
Run Code Online (Sandbox Code Playgroud)

但我建议给你的按钮一个更有意义的名字,如'btnLinkForEdit',并相应地更改if.