【问题标题】:Getting two DataGridViewCheckBoxColumn when first checkBox column is checked检查第一个复选框列时获取两个 DataGridViewCheckBoxColumn
【发布时间】:2016-12-30 18:55:38
【问题描述】:

我有一个名为 bindExDateGrid 的函数,它返回数据库中输入的项目具有相同名称和条形码的所有记录。这个函数的代码工作正常,但是当我检查 dataGridView checkBoxColumn 另一个复选框列出现!!
我该如何解决这个问题?
bindExDateGrid 函数的代码是:

private void bindExDateGrid()
{
    cn.Open();
    SqlCommand cmd = new SqlCommand("select itmName,quant,exDate from inventory where itmBar='" + sBillItemBartxt.Text + "' and itmName='" + sBillItemNametxt.Text + "'", cn);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    exDatedgv.DataSource = dt;      

    // Adding checkBox column to dataGridView
    DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn();
    checkColumn.Name = "itmCheckedCol";
    checkColumn.HeaderText = "Selection";
    checkColumn.ReadOnly = false;
    exDatedgv.Columns.Add(checkColumn);

    cn.Close();
}

【问题讨论】:

  • 可能,当您选中复选框时,您会再次执行bindExDateGrid
  • @Fabio 如何停止函数的第二次执行?
  • 始终使用 SQL 参数;至于问题,您显然是在重用添加一列的方法。将其拆分并仅调用一次 add-a-check-column 部分
  • @Plutonix 你的意思是参数化查询?
  • @Plutonix 如何将方法调用与添加 checkBoxColumn 分开?

标签: c# winforms data-binding datagridview


【解决方案1】:

我通过设计而不是使用代码向 dataGridView 添加列解决了这个问题,现在当我检查复选框时不再出现复选框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多