【问题标题】:How to check if column exists in a DataGridView [duplicate]如何检查DataGridView中是否存在列[重复]
【发布时间】:2012-10-11 09:09:30
【问题描述】:

我想检查该列是否存在,我将数据库中的数据绑定到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)

但它不起作用。

【问题讨论】:

    标签: c# winforms ado.net


    【解决方案1】:

    Contains 方法失败,因为列名是 'btn' 而不是 'Click'

    正如您在DataGridViewLinkColumn 文档中所见,属性Name 定义了Contains 方法适用的列名。

    所以你的代码应该是

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

    但我建议为您的按钮起一个更有意义的名称,例如“btnLinkForEdit”,并相应地更改 if。

    【讨论】:

    • 我用了你的代码,但还是一样
    【解决方案2】:

    你应该检查如下:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-14
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2015-01-18
      • 2015-03-08
      • 2022-01-12
      相关资源
      最近更新 更多