导出DataGridView SelectedRows到一个数据表

本文关键字:一个 数据表 DataGridView SelectedRows 导出 | 更新日期: 2023-09-27 18:08:31

我想将DataGridView的多个选定行转移到DataTable,然后将其设置为我的晶体报告的数据源。

首先,我通过一个存储过程加载数据库中的所有数据。

dataGridView1.DataSource = clsPayroll.view_Employee();

然后我把下面的代码放在打印选中按钮中,这里不限制多选。

foreach(DataGridViewColumn column in dataGridView1.Columns)
table.Columns.Add(column.Name, typeof(string));
for (int i = 0; i < dataGridView1.SelectedRows.Count; i++) {
    table.Rows.Add();
    for (int j = 0; j < dataGridView1.Columns.Count; j++) {
        table.Rows[i][j] = dataGridView1[j, i].Value;
    }
}
rpt.SetDataSource(table);

我的数据库中有一些条目:

EMP_ID      Emp_Name    Gender  
EMP-000013  Dummy       Male    
EMP-000014  Teresa      Female  
EMP-000015  Dutcry      Male    

当我选择ep -000014和ep -0000015行时。

我希望crystalreport查看器会列出它,但是它显示的是ep -000013和ep -000014

导出DataGridView SelectedRows到一个数据表

感谢那些张贴答案的人,我很抱歉没有更新我是否已经修复了它。

我能够弄清楚为什么我的代码不像以前那样工作了。

而不是从datagridview获取数据,我应该使用datagridview。selectedrows。

下面是代码

foreach(DataGridViewColumn column in dataGridView1.Columns)
table.Columns.Add(column.Name, typeof(string));
for (int i = 0; i < dataGridView1.SelectedRows.Count; i++) {
    table.Rows.Add();
    for (int j = 0; j < dataGridView1.Columns.Count; j++) {
       table.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value;
    }
}
rpt.SetDataSource(table);