在忽略第一列的情况下,如何将DataGridView的选定行发送到Datatable?

时间:2019-06-05 21:47:00

标签: c# datagridview

大家好。

我希望你们能提供帮助。

我的问题是这样的:

我有这个datagridview,我使用数据源(对数据库表的查询)来填充。我只手动创建了一个包含复选框的列。绑定完成后,我可以单击复选框以选择该行,然后可以通过这种方式选择多行。

我想将选定的行放入数据表中(以便我可以读取它,并对其进行一些sql查询)但是,当我读取选定的行以将其放入数据表中时,我需要跳过复选框列(第一个)。

我该如何实现?

1 个答案:

答案 0 :(得分:0)

好的,为了将来参考,我将在这里发布如何修复它。

DataTable dt = new DataTable();            
        if (dgvPedidos.SelectedRows.Count > 0)
        {
            foreach (DataGridViewColumn column in dgvPedidos.Columns)
                dt.Columns.Add();
            int i = 0;
            foreach(DataGridViewRow row in dgvPedidos.Rows)
            {
                if (Convert.ToBoolean(dgvPedidos.Rows[i].Cells["chkPedido"].Value) == true)
                {
                    dt.Rows.Add();
                    dt.Rows[i][1] = row.Cells[1].Value.ToString();
                    dt.Rows[i][2] = row.Cells[2].Value.ToString();
                    dt.Rows[i][3] = row.Cells[3].Value.ToString();
                    dt.Rows[i][4] = row.Cells[4].Value.ToString();
                    dt.Rows[i][5] = row.Cells[5].Value.ToString();
                    dt.Rows[i][6] = row.Cells[6].Value.ToString();
                    dt.Rows[i][7] = row.Cells[7].Value.ToString();
                    dt.Rows[i][8] = row.Cells[8].Value.ToString();
                    dt.Rows[i][9] = row.Cells[9].Value.ToString();
                    i++;
                }
            }
            dt.Columns.RemoveAt(0);
相关问题