将所选数据网格视图发送到数据表

本文关键字:数据表 视图 网格 数据 数据网 | 更新日期: 2023-09-27 18:14:42

我正在尝试将选定的datagridview行获取到数据表中。

使用以下代码,我可以将selectedrow发送到数据表,但当尝试将第二行发送到数据表格时,它会添加一个空行,但会覆盖数据表格中的第一行。

for (int i = 0; i < dataGridview.SelectedRows.Count; i++)
        {
            DT1.Rows.Add();
            for (int j = 0; j < dataGridview.Columns.Count; j++)
            {
                DT1.Rows[0][j] = dataGridview.SelectedRows[i].Cells[j].Value;
            }
        }

正如预期的那样,它进入了索引0上的行,所以我尝试了以下操作以到达最后一行

for (int j = 0; j < dataGridview.Columns.Count; j++)
            {
                int rowcount = DT1.Rows.Count;
                DT1.Rows[rowcount][j] = dataGridview.SelectedRows[i].Cells[j].Value;
            }

这给了我一个错误,即该行不存在,应该如何添加第二行而不是替换?

将所选数据网格视图发送到数据表

您的代码中还有其他问题。也就是说,如果您的用户在对该代码的不同调用中选择了相同的行,您将插入重复的行。

修复rowcount,将其更改为rowcount-1。然后复习你的设计。想出一种方法来防止重复插入(除非你真的想要(。

您在rowcount 中遇到问题

Rowcount提供总行数,但rowindex始终以0开头即rowindex = rowcount-1使用这个

for (int j = 0; j < dataGridview.Columns.Count; j++)
{
    int rowcount = DT1.Rows.Count;
    DT1.Rows[rowcount-1][j] = dataGridview.SelectedRows[i].Cells[j].Value;
}
DT1.Rows[i][j] = dataGridview.SelectedRows[i].Cells[j].Value,ToString();

试试这个!您的外循环已经在跟踪表中的行,因此不需要打乱行数。