我如何将GridView.DataSource导出到数据表或数据集?
如何将GridView.DataSource
导出到数据表或数据集?
你应该在BindingSource
转换第一个DataSource
,看看例子
BindingSource bs = (BindingSource)dgrid.DataSource; // Se convierte el DataSource DataTable tCxC = (DataTable) bs.DataSource;
用tCxC
的数据你可以做任何事情。
假设你的DataSource是DataTabletypes的,你可以这样做:
myGridView.DataSource as DataTable
我个人会去:
DataTable tbl = Gridview1.DataSource as DataTable;
这将允许您testing为null,因为这会导致DataTable对象或null。 使用(DataTable)GridView1.DataSource将其作为数据表进行转换将导致DataSource实际上是DataSet甚至某种集合的情况下发生崩溃错误。
支持文档: MSDN关于“as”的文档
安布,
我和你有同样的问题,这是我用来弄清楚的代码。 虽然,我不使用页脚行部分为我的目的,我没有包含在此代码中。
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); }
我已经使用下面的代码行,它的工作原理,试试这个
DataTable dt = dataSource.Tables[0];
这来得晚,但是相当有帮助。 我只是张贴以供将来参考
DataTable dt = new DataTable(); Data.DataView dv = default(Data.DataView); dv = (Data.DataView)ds.Select(DataSourceSelectArguments.Empty); dt = dv.ToTable();