C# 如何将DataGridView的选定行发送到Datatable,但忽略第一列?

C# 如何将DataGridView的选定行发送到Datatable,但忽略第一列?,c#,datagridview,C#,Datagridview,大家好 我很想得到你们的帮助 我的问题是这样的: 我使用datasource(对db表的查询)填充了这个datagridview。我只手动创建了一个包含复选框的列。绑定完成后,我可以单击复选框来选择行,并且可以通过这种方式选择多行 我想将所选行放入datatable(这样我可以读取它并使用其中的信息执行一些sql查询),但当我读取所选行以将它们放入datatable时,我需要跳过复选框列(第一列) 我怎样才能做到这一点呢?好的,为了以后的参考,我将在这里发布我是如何修复它的 DataTable

大家好

我很想得到你们的帮助

我的问题是这样的:

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

我想将所选行放入datatable(这样我可以读取它并使用其中的信息执行一些sql查询),但当我读取所选行以将它们放入datatable时,我需要跳过复选框列(第一列)


我怎样才能做到这一点呢?

好的,为了以后的参考,我将在这里发布我是如何修复它的

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);

将check/selected列添加到datatable/datasource。之后,您可以通过DataView或linqHi Harry轻松查询DT并仅提取所选行,请始终包含一些代码,以使其他成员的生活更轻松,这是一个更有价值的问题。