web-dev-qa-db-ja.com

データソースなしでDataGridViewからDataTableを作成する方法?

グリッド値のDataGridViewからDataTableを取得します。

つまり、DataTableはDataGridViewの値と同じです。

14
Mobin

それを行うにはより良い方法かもしれませんが、それ以外の場合は、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);
}
37
Hans Olsson

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

DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource;
11
Trenton Wallace

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

DataTable dt = new DataTable();
dt = Ctype(dataGridView1.DataSource,DataTable).copy();
5
Vishal Gavle