Как сделать DataTable из DataGridView без какого-либо источника данных? - PullRequest
13 голосов
/ 24 июня 2010

Я хочу получить DataTable из DataGridView значений Grid.

Другими словами, DataTable такой же, как DataGridView Значения

Ответы [ 3 ]

36 голосов
/ 24 июня 2010

Возможно, это был бы лучший способ сделать это, но в противном случае было бы довольно тривиально просто зациклить 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);
}
10 голосов
/ 15 мая 2012

Вы можете преобразовать объект DataSource из DataGridView в DataTable

DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource;
5 голосов
/ 10 ноября 2012

Вы также можете использовать следующий код, эта заливка кода не влияет на ваш DataGridView, когда вы делаете некоторые добавления или удаления строк в таблице данных

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