2将第二个table copy到一个datatable对象中,然后将其添加到dataset中

解决方案 »

  1.   

    1. 再看看 MSDN 中 oledataadpter 的 fill 的用法2. 合并两个 datatable 需要遍历其中的一个.
      

  2.   

    1. DbDataAdapter.Fill 方法 (DataSet, String)
    在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。2. 完全复制一个表,需要用循环处理。
      

  3.   

    谢谢上面几位,第一个的代码很多,是用C#实现的数据库抽象工厂的代码。
    第二个的代码是:DataSet ds=new DataSet ();
    Assembly assembly=Assembly.LoadFrom (filePath);
    Type type=assembly.GetType ("DbService.DbAccess");
    System.Reflection.MethodInfo SelectAllWithColumn =type.GetMethod ("SelectAllWithColumn");
    //ParameterInfo [] parameters = SelectAllWithColumn.GetParameters();  //得到SelectAll的参数
    object obj = Activator.CreateInstance(type);
    ds=(DataSet)SelectAllWithColumn.Invoke(obj,parameter );  //result 为调用本方法返回的值

    //provinceCombobox.DataSource =ds.Tables [0];
    //provinceCombobox.DisplayMember ="province_name";
    string []column1={"province_id","city_name","area_code","post_code"};

    parameter[0]="dict_city";
    parameter[1]=column1;
    DataSet ds2=null;
    ds2=(DataSet)SelectAllWithColumn.Invoke(obj,parameter );  //result 为调用本方法返回的值
    DataTable dt=ds2.Tables [0].Copy ();
    ds.Tables.Add (dt);
    //ds.Tables [1].=ds2.Tables [0].Copy() ;
    cityCombobox.DataSource =ds.Tables [1];
    cityCombobox.DisplayMember ="city_name";
    总是提示名为table的表属于另一个数据集。
      

  4.   

    就是我在使用oledataadpter的fill功能时,我想用fill(dataset,tablename),他提示我没有重载,请问如何才能解决。
    ---------------------
    如果报错“没有重载”,说明你传入的参数类型不正确,
    请检查oledataadpter.fill(dataset,tablename)的参数类型
      

  5.   

    http://www.csdn.net/develop/article/26/26098.shtm
    http://www.csdn.net/develop/article/26/26099.shtm
    http://www.csdn.net/develop/article/26/26100.shtm
    这是数据工厂的代码,可是在使用的时候fill功能只用fill(dataset)的功能。另外我想实现的功能就是我有两个表,一个city ,一个是province的,两者之间根据povinceId字段建立关系,我想实现在combobox中选择一个省份,然后在另一个combobox列出此省份的城市,选 中城市则列出此城市的区号及邮编,请问有好的方法吗?分不够可在加,祝大家节日快乐。
      

  6.   

    http://blog.csdn.net/foolnet/archive/2005/01/20/260705.aspx
      

  7.   

    我用的是dbaccess的concreteDbAdapter.Fill(ds),这个fill功能不能实现fill(dataset,tablename);请高手给出解决方法。