65.9K
CodeProject 正在变化。 阅读更多。
Home

GridView 转 DataTable

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.25/5 (10投票s)

2006年8月6日

CPOL
viewsIcon

208243

将当前的 Gridview 转换为 datatable。

问题

SQL 数据源从服务器检索数据并将其绑定到 Gridview,如果由于某种原因(“我遇到这种情况是因为我需要将图表中的数据显示到 Gridview 中”)你需要的是 Gridview 中显示的数据,即 Gridview 当前持有的数据,那么这里是实现方法

解决方案

  1. 从 SQL 数据源获取一个数据视图
  2.   DataView dataView;dataView = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
  3. 检查数据视图是否为空
  4.  
    
    if (ChartDataView != null) {}
  5. 从 SQL 数据源设置表的结构
  6. DataTable dt;
    dt = ChartDataView.Table.Clone();
  7. 将 GridViewRows 复制到一个数组
  8.     GridViewRow[] Chartarr = new ridViewRow[GridViewData.Rows.Count];
      GridViewData.Rows.CopyTo(Chartarr, 0)
  9. 将值添加到新的数据表
  10. 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);
         }
}
© . All rights reserved.