Как экспортировать GridView.DataSource
в datatable или dataset?
Как я могу экспортировать GridView.DataSource в datatable или dataset?
Ответ 1
Вы должны преобразовать первый DataSource
в BindingSource
, посмотрите пример
BindingSource bs = (BindingSource)dgrid.DataSource; // Se convierte el DataSource
DataTable tCxC = (DataTable) bs.DataSource;
С данными tCxC
вы можете сделать что угодно.
Ответ 2
Предполагая, что ваш DataSource имеет тип DataTable, вы можете просто сделать это:
myGridView.DataSource as DataTable
Ответ 3
Лично я бы пошел с:
DataTable tbl = Gridview1.DataSource as DataTable;
Это позволит вам проверить значение null, так как это приведет к объекту DataTable или null. Передача его в качестве DataTable с использованием (DataTable) Gridview1.DataSource приведет к сбою в ошибке, если DataSource на самом деле является DataSet или даже какой-то коллекцией.
Поддерживающая документация: Документация MSDN на "как"
Ответ 4
Амб,
У меня была такая же проблема, как у вас, и это код, который я использовал для выяснения. Хотя, я не использую раздел строки нижнего колонтитула для моих целей, я включил его в этот код.
DataTable dt = new DataTable();
// add the columns to the datatable
if (GridView1.HeaderRow != null)
{
for (int i = 0; i < GridView1.HeaderRow.Cells.Count; i++)
{
dt.Columns.Add(GridView1.HeaderRow.Cells[i].Text);
}
}
// add each of the data rows to the table
foreach (GridViewRow row in GridView1.Rows)
{
DataRow dr;
dr = dt.NewRow();
for (int i = 0; i < row.Cells.Count; i++)
{
dr[i] = row.Cells[i].Text.Replace(" ","");
}
dt.Rows.Add(dr);
}
// add the footer row to the table
if (GridView1.FooterRow != null)
{
DataRow dr;
dr = dt.NewRow();
for (int i = 0; i < GridView1.FooterRow.Cells.Count; i++)
{
dr[i] = GridView1.FooterRow.Cells[i].Text.Replace(" ","");
}
dt.Rows.Add(dr);
}
Ответ 5
Я использовал ниже строки кода, и он работает, попробуйте
DataTable dt = dataSource.Tables[0];
Ответ 6
Это происходит поздно, но очень полезно. Я просто размещаю для будущей ссылки
DataTable dt = new DataTable();
Data.DataView dv = default(Data.DataView);
dv = (Data.DataView)ds.Select(DataSourceSelectArguments.Empty);
dt = dv.ToTable();