0

私はデスクトップ アプリケーションを使用しており、datagridview からデータ テーブルを作成しようとしています。ただし、チェックボックスが選択またはチェックされている場合にのみ、これらの行を追加したいです。現在、このようなデータグリッドビュー全体からデータテーブルを作成しました。

DataTable tbl = (DataTable)dataGridView1.DataSource;

datagridview 内にチェックボックス列を追加しました。選択した行を新しいデータテーブルに追加する方法を教えてください

ありがとう..これが新しいコードの更新です

for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    if (Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value) == true)
                    {
                        DataRow dr0 = tbl.NewRow();
                        dr0["ID"] = dataGridView1.Rows[i].Cells["ID"].Value;
                        dr0["BikeCC"] = dataGridView1.Rows[i].Cells["BikeCC"].Value.ToString();
                        dr0["ChassisModel"] = dataGridView1.Rows[i].Cells["ChassisModel"].Value.ToString();
                        dr0["BikeCC"] = dataGridView1.Rows[i].Cells["BikeCC"].Value.ToString();
                        dr0["ChassisModel"] = dataGridView1.Rows[i].Cells["Chassismodel"].Value.ToString();
                        tbl.Rows.Add(dr0);

                    }
                }

                objMdl.RecordTable = tbl;

これは、選択した行を新しいデータテーブルに追加する方法です...長いですが、まだ小さな問題に直面しています。あなたの見た目のために少し投稿します。

4

1 に答える 1

1

チェックボックス列の名前がyourCheckBoxColumnであるとします。

DataTable tbl = ((DataTable)dataGridView1.DataSource).Clone();//Clone structure first
var rows = dataGridView1.Rows.OfType<DataGridViewRow>()
                        .Where(r=>Convert.ToBoolean(r.Cells["yourCheckBoxColumn"].Value))
                        .Select(r=>((DataRowView)r.DataBoundItem).Row);
foreach(var row in rows)
   tbl.ImportRow(row);
于 2013-09-18T06:46:36.413 に答える