2016-09-22 3 views
0

Я хочу передать несколько выбранных строк из DataGridView в DataTable, а затем установить для него источник данных для моего отчета о кристалле.Экспорт данныхGridView SelectedRows в 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  

Когда я выбираю строку EMP-000014 и EMP-0000015.

Я ожидаю, что зритель crystalreport перечислит его, но вместо этого он показывает EMP-000013 и EMP-000014

ответ

0

Спасибо за тех, кто разместил свои ответы, и я сожалею, что не обновлять имею ли я уже неподвижным Это.

Я могу понять, почему мой код не работает так, как раньше.

Вместо того, чтобы получать данные из 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); 
Смежные вопросы