DBAWebFormsVisual Studio 2005ADO.NET.NET 2.0SQL Server 2005C# 2.0中级开发Visual StudioSQL ServerSQLWindows.NETASP.NETC#
GridView 转 DataTable
将当前的 Gridview 转换为 datatable。
问题
SQL 数据源从服务器检索数据并将其绑定到 Gridview,如果由于某种原因(“我遇到这种情况是因为我需要将图表中的数据显示到 Gridview 中”)你需要的是 Gridview 中显示的数据,即 Gridview 当前持有的数据,那么这里是实现方法
解决方案
- 从 SQL 数据源获取一个数据视图
- 检查数据视图是否为空
- 从 SQL 数据源设置表的结构
- 将 GridViewRows 复制到一个数组
- 将值添加到新的数据表
DataView dataView;dataView = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
if (ChartDataView != null) {}
DataTable dt;
dt = ChartDataView.Table.Clone();
GridViewRow[] Chartarr = new ridViewRow[GridViewData.Rows.Count];
GridViewData.Rows.CopyTo(Chartarr, 0)
foreach (GridViewRow row in Chartarr)
{
DataRow datarw;
datarw = dt.NewRow();
for (int i = 0; i < row.Cells.Count; i++)
{
datarw[i] = row.Cells[i].Text;
}
dt.Rows.Add(datarw);
}
完整代码
if (ChartDataView != null)
{
DataView dataView;
dataView = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
DataTable dt;
dt = ChartDataView.Table.Clone();
GridViewRow[] Chartarr = new ridViewRow[GridViewData.Rows.Count];
GridViewData.Rows.CopyTo(Chartarr, 0)
foreach (GridViewRow row in Chartarr)
{
DataRow datarw;
datarw = dt.NewRow();
for (int i = 0; i < row.Cells.Count; i++)
{
datarw[i] = row.Cells[i].Text;
}
dt.Rows.Add(datarw);
}
}