SqlDataAdapter.Fill(DataSet,"aa");
....
SqlDataAdapter.Fill(DataSet,"bb");
aa和bb是表名,明白了吗?

解决方案 »

  1.   

    TO: gshope(北京.Net)
      谢谢你的回答,IDbDataAdapter是没有  Fill( DataSet, string )重载方法的
    之所以选择用IDbDataAdapter是为了兼容多种数据库
      

  2.   

    SqlDataAdapter.Fill(DataTable);///添充到一个DATATABLE
    DataSet.Tables.Add(DataTable);///添加一个DataTable到DataSet
      

  3.   

    我想你第二次充填的时候都创建一个新的DataSet,然后再加上成的表复制到第一个DataSet内IDbDataAdapter adapter;
    DataSet ds = new DataSet();
    DataSet ds1 = new DataSet();
    adapter.Fill(ds);
    ds.Tables[0].TableName = "tb1";
    adapter.Fill(ds1);
    ds1.Tables[0].TableName = "tb2";
    ds.Tables.Add(ds1.Tables[0].Copy());
      

  4.   

    接口IDbDataAdapter只支持一个以DataSet作为参数的Fill(DataSet dataSet)
    而我希望把两次查询结果填充到一个DataSet的两个DataTable中。
    现在的问题是它却是填充到一个DataTable中了,我不知道是MSDN的文档写错了,还是其他原因,我想问的是当用Fill()方法填充又没有指定sourceTable时是以什么条件判断是在DataSet中新建DataTable还是更新DataTable
      

  5.   

    之所以选择用IDbDataAdapter是为了兼容多种数据库
    这个也好解决  你用DbDataAdapter 转一下就可以IDbDataAdapter FF= NEW SQLDATAADAPTER () ;DbDataAdapter TT = FF AS DbDataAdapter ;TT.Fill(DataSet,"aa");
    ....
    TT.Fill(DataSet,"bb");
      

  6.   

    谢谢 soulroom(易水之风)如果要这样做的话我不如用两个DataSet来得简单,我关键是想知道Adapter填充DataSet的机制。我在《MSDN》和《ADO.net技术内幕》中都没有找到具体的说明我现在的推测是当原表中的字段集是新表中字段集的子集或相反时就添加到原表,否则建立新表,请高手指点
      

  7.   

    lansingcy(小子)的方法比较实际,我的项目目前可能使用的数据库类型只有ACCESS和SQL Server,OleDbDataAdapter和SqlDataAdapter都是DbDataAdapter的子类我就是不明白了,为什么IDbDataAdapter接口只声明Fill的一个版本呢,用起来很不方便的
      

  8.   

    我是个初学者,不知道说的对不对。建两个SqlDataAdapter,分别用fill()填充dataset。这样dataset里就会有两个表的结果集了。
    我是用向导做的。在窗体上放一个datagride和两个SqlDataAdapter。设置连接。选中两个SqlDataAdapter在菜单中找到“数据--》生成结果集”就会自动生成一个dataset。还会自动生成SqlDataAdapter的select,update等sql语句。这样dataset里就会有两个表。