最笨的方法就是遍历GV,把每行的每列的数据取出,放到一个DataTable中

解决方案 »

  1.   

    正如楼主所说,GridView的数据源确实有不可能转成DataTable的时候,
    可能的做法大概就是如下的吧:object data = GridView.DataSource;
    DataTable dataTable = null;
    if (data is DataSet)
    {
    DataSet ds = data as DataSet;
    if (ds != null && ds.Tables.Count == 1)
    {
    dataTable = ds.Tables[0];
    }
    }
    else if (data is DataView)
    {
    DataView dv = data as DataView;
    dataTable = dv.Table;
    }
    else if (data is DataTable)
    {
    dataTable = data as DataTable;
    }
    其它的类型我是不知道怎么转成DataTable类型的.
      

  2.   

    前面的朋友说遍历GridView,那当然不行,我需要的是取出GridView中的数据源,而你遍历
    GridView,只取了当前页面的数据源。。平民百姓的想法就是我的想法,但如果数据源是ObjectDataSource之类的控件,就招就不行了,,有没有高手知道这问题应该如何解决???
      

  3.   

    这也是个笨办法,重查一次数据库   DataTable dt = ((DataView)((ObjectDataSource)this.GridView1.DataSource).Select()).Table;
      

  4.   

    看看这些类型有没有一个拷贝方法。像什么.Copy之类的
      

  5.   

    我也遇到这个问题了.GV绑定的是ObejctDataSource 但是下面的业务需要转成DataTable来解决..