2016-09-22 9 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); 
です
関連する問題