避免添加重复的数据行

时间:2012-05-22 15:31:45

标签: c# .net winforms datagridview duplicate-removal

在我的Windows窗体应用程序中,基本上我有两个DataGridView。我想从右边选择行,并在左边添加选定的行。 右DataGridView有一个复选框列。

查看图片:


Grids


例如:


  1. 单击第一行,然后单击“添加”按钮。

  2. 单击第三行,然后单击“添加”按钮。

  3. 问题是第一行被添加了两次,因为它被勾选了。

    如何确保添加的行是不同的?


    我的代码:


    foreach (DataGridViewRow row in dgRight.Rows)
    {
        DataGridViewCheckBoxCell check = row.Cells[0] as DataGridViewCheckBoxCell;
        if (check.Value != null)
        {
            if ((bool)check.Value)
            {
                DataRow myRow = (row.DataBoundItem as DataRowView).Row;
                DataRow dr = dt.NewRow();
                dr[0] = myRow[0];
                dr[1] = myRow[1];
                dr[2] = myRow[2];
                dr[3] = myRow[3];
    
                dt.Rows.Add(dr);
            }
        }
    }
    dgLeft.DataSource = dt;
    

1 个答案:

答案 0 :(得分:3)

使用Data Table方法检查.Find中的行是否已存在:

var rowExists = dt.Rows.Find(dr);

if (rowExists == null) { // The row doesn't exist
  dt.Rows.Add(dr); // Add the row
}