自定义DataSet  *.xsd 的好处相当大,使用数据起来相当方便。将数据放到 这个自定义结果集也很简单 
dataAdapter.Fill(mydataset);现在有一个问题。
我已经获得了系统默认类型的DataSet,
如果将这个DataSet的数据输送到我自定义的DataSet 呢?
要效果和 dataAdapter.Fill(mydataset); 一样。出现这个问题是因为数据来源是从webservice来的,那个玩意是默认的DataSet类型。

解决方案 »

  1.   

    好像是dataset.copy()。你试一试!!!
      

  2.   

    dataset.copy() 只能从一个DataSet copy到另外一个DataSet。
    不能copy到自定义的DataSet我说的自定义的DataSet是来自*.xsd  下面是个例子。
     public class SELLS_INFO : DataSet {
    ..
    ..
    ..
    }
      

  3.   

    我觉得自定义的dataset可能是任何数据内容,所以fill或者copy时可能出问题,你只能手动把dataset里面的东西取出来再存进去。个人看法。
      

  4.   

    我这个自定义的不是自己瞎写的,是来自xsd文件生产的。
      

  5.   

    SELLS_INFO是DataSet的强类型,WebServices返回的是DataSet,也就是DataSet返回的内容可能与SELLS_INFO内容不匹配。试试对WebServices返回的DataSet进行强制类型转换注:WebServices设计成返回DatSet本身就有问题,(WebServices设计规则:传递泛类型,返回强类型)
      

  6.   

    o 我好像曾经也遇到你这个问题
    从dataAdapter获取的DetaSet和你自己定义的DetaSet 有一个差别
    就是你定义的DetaSet的一个属性是空的
    你可以 断点看一下暂时没有找到好的解决办法
    只好循环传入数据了
      

  7.   

    只传输数据那就循环哪个dataSet的每个表,然后clone()结构,使用import()循环导入其数据
    DataSet myds=new dataset();
    for(int i=0;i<ds.tables.count;i++)
    {
        dataTable dt=ds.tables[i].clone();
        foreach(dataRow dr in ds.tables[i].rows)
        {
             dt.import(dr);
        }
        myds.tables[i]=dt;   //这句话不知道对不对,上面的数据就那样可以
    }