2016-09-22 3 views
0

DataGridView의 여러 선택된 행을 DataTable으로 전송하고 Crystal Reports 용 데이터 소스로 설정하려고합니다.DataGridView SelectedRows를 DataTable으로 내 보냅니다.

먼저 모든 데이터가 내 데이터베이스에서 저장 프로 시저를 통해로드됩니다.

dataGridView1.DataSource = clsPayroll.view_Employee(); 

다음 다중 선택이 제한되지 않는 인쇄 선택 단추에 아래 코드를 넣습니다. 내가 행 EMP-000014와 EMP-0000015을 선택하면

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

:

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

은 여기 내 데이터베이스에 일부 항목이있다.

은 내가 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); 
입니다
관련 문제