17

グリッド値のDataGridViewからDataTableを取得したい。

言い換えれば、DataTableはDataGridViewの値と同じです

4

4 に答える 4

46

それを行うにはより良い方法かもしれませんが、それ以外の場合は、DGV をループして DataTable を手動で作成するのはかなり簡単です。

このようなものがうまくいくかもしれません:

DataTable dt = new DataTable();
foreach(DataGridViewColumn col in dgv.Columns)
{
   dt.Columns.Add(col.Name);    
}

foreach(DataGridViewRow row in dgv.Rows)
{
    DataRow dRow = dt.NewRow();
    foreach(DataGridViewCell cell in row.Cells)
    {
        dRow[cell.ColumnIndex] = cell.Value;
    }
    dt.Rows.Add(dRow);
}
于 2010-06-24T10:34:43.377 に答える
12

DataGridView から DataTable に DataSource オブジェクトをキャストできます。

DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource;
于 2012-05-15T15:55:22.553 に答える
5

次のコードも使用できます。このコードは、データテーブルで行を追加または削除するときにDataGridViewに影響を与えません。

DataTable dt = new DataTable();
dt = Ctype(dataGridView1.DataSource,DataTable).copy();
于 2012-11-10T09:18:00.770 に答える