将DataGridView SelectedRows导出到DataTable

时间:2016-09-22 14:08:44

标签: c# winforms datagridview datatable

我想将function uploadFiles(files, userId, projectId, successCallback, progressCallback) { if (files && files.length) { var uploads = []; for (var i = 0; i < files.length; i++) { var file = files[i]; if (!file.$error) { var upload = Upload.upload({ url: 'api/fileuploads/fileupload/' + userId + '/' + projectId, data: { file: file } }).then(function (resp) { if (successCallback) { successCallback(resp); } }, null, function (evt) { var progressPercentage = parseInt(100.0 * evt.loaded / evt.total); var log = 'progress: ' + progressPercentage + '% ' + evt.config.data.file.name + '\n'; if (progressCallback) { progressCallback(log); } }); uploads.push(upload); } } Promise.all(uploads).then(function(values){}); } };的多个选定行转移到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-000014和EMP-0000015时。

我希望crystalreport viewer会列出它,但它会显示EMP-000013和EMP-000014

1 个答案:

答案 0 :(得分:0)

感谢那些发布答案的人,我很抱歉不更新我是否已经修复过。

我能够弄清楚为什么我的代码不像过去那样工作。

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

这是代码

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