グリッド値のDataGridViewからDataTableを取得します。
つまり、DataTableはDataGridViewの値と同じです。
それを行うにはより良い方法かもしれませんが、それ以外の場合は、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);
}
DataSourceViewオブジェクトをDataGridViewからDataTableにキャストできます。
DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource;
次のコードを使用することもできます。このコードは、データテーブルで行を追加または削除したときにDataGridViewに影響を与えません。
DataTable dt = new DataTable();
dt = Ctype(dataGridView1.DataSource,DataTable).copy();