2017-12-10 16 views
0

BackgroundColor = Greenのすべての行を新しいDataTableにコピーしたいとします。私は、以下の構文を試してみましたが、私は特定のDataGridViewRowを新しいDataTableにコピー

のエラーを取得していますして変換することはできません「System.Windows.Forms.DataGridViewRow」「System.Data.DataRow」

になりますどのようなこのsynatxを書く正しい方法は?

foreach (DataGridViewRow dr in dgvMain.Rows) 
{ 
    if (dr.DefaultCellStyle.BackColor == System.Drawing.Color.Green) 
    { 
     ApprovedDTable.ImportRow(dr); 
    } 
} 

EDIT
そして、これはdrでエラーをスローコード行が

ApprovedDTable.ImportRow(dr); 
+0

あなたのニーズに合うと思います'dr.Cells [" 0 "]。DefaultCellSyle.BackColor =='がベストだと推測されるかどうかを調べるには、どちらの行[0] .Celあなたが本当にこだわっているならgoogleそれは – MethodMan

+0

@MethodMan - 私は色が新しいdatatableに緑色である行全体を追加しようとしていた。だから私はImportRowメソッドに行った。私がセル["0"]ルートに行くと、その行の各セルを新しいデータテーブルに1つずつ追加する必要はありませんか? – BellHopByDayAmetuerCoderByNigh

+0

はい私は知っていますが、選択された行を取得することがあなたの主な目標です..もう一度..私はGoogleを使用し、各セルのセルを取得する方法を理解するインデックスまたは列名意味。セル[0]またはセル[ルート]]を使用するとデバッガも使用でき、コード設定のブレークポイントをステップ実行するときにdrを評価できます – MethodMan

答えて

0

を強調している私は、この構文は、あなたが必要

foreach (DataGridViewRow row in this.dgvMain.Rows) 
{ 
    if (row.DefaultCellStyle.BackColor == Color.Green) 
    { 
     object[] rowData = new object[row.Cells.Count]; 
     for (int i = 0; i < rowData.Length; ++i) 
     { 
      rowData[i] = row.Cells[i].Value; 
     } 
     ApprovedDTable.Rows.Add(rowData); 
    } 
} 
+0

これはDataTableに適切な行数を設定していますが、すべてのデータを埋め込むわけではありません。 – BellHopByDayAmetuerCoderByNigh

関連する問題