我想从DataGridView获取Grid值的DataTable。
换句话说,DataTable与DataGridView值相同
答案 0 :(得分:34)
可能是一种更好的方法,但是否则只需循环遍历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);
}
答案 1 :(得分:9)
您可以将DataSource对象从DataGridView转换为DataTable
DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource;
答案 2 :(得分:5)
您也可以使用以下代码,当您在数据表中添加或删除行时,此代码填充对DataGridView没有影响
DataTable dt = new DataTable();
dt = Ctype(dataGridView1.DataSource,DataTable).copy();