如何在没有任何数据源的情况下从DataGridView创建DataTable?

时间:2010-06-24 10:15:06

标签: c# datagridview datatable windows-forms-designer

我想从DataGridView获取Grid值的DataTable。

换句话说,DataTable与DataGridView值相同

3 个答案:

答案 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();