msdn上关于DataAdapter.Fill方法的描述当指定的查询返回多项结果时,每个返回查询的行的结果集都放置在单独的表中。将整数值追加到指定的表名从而对其他结果集进行命名(例如“Table”、“Table1”、“Table2”等)。
 
这句话的意思是不是说。如果我的使用一个select语句,返回多行那么有多少行就有多少个表。
比如一个查询返回的数据
id name  sex
1   abc    1
2   bcd    1
3   fds    2
这个是不是在dataSet里面就有三张表呢

解决方案 »

  1.   

    DataAdapter.Fill可以填充多个数据表到同一个dataset里,明白否?
      

  2.   

    我这里的datasetWriteXml写出来的怎么是这样的呢。意外project是表名 history 是dataset的名称
    <history>
      <project>
        <resumeid>499</resumeid>
        <skillsort>CAD</skillsort>
        <usedtime>12</usedtime>
        <skilllevel>精通</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>TCP/IP</skillsort>
        <usedtime>6</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>Windows NT/2000/XP</skillsort>
        <usedtime>24</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>C++</skillsort>
        <usedtime>6</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>Protel</skillsort>
        <usedtime>12</usedtime>
        <skilllevel>精通</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>Digital Product</skillsort>
        <usedtime>12</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>Visual Foxpro</skillsort>
        <usedtime>12</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>C</skillsort>
        <usedtime>24</usedtime>
        <skilllevel>精通</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>Visual Basic</skillsort>
        <usedtime>6</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
    </history>
      

  3.   

    一个完整的Select语句返回一个行集,多个Select语句返回多个行集,如下:
    select * from orders;这个返回后的表名是Tableselect * from orders;select * from employees;
    这个返回后的表名是两个:Table, Table1select * from orders;select * from employees;select 123;
    这个返回后的表名分别是:Table, Table1, Table2
    .....
      

  4.   

    public  void RunProcDS(string procName,SqlParameter[] prams,DataSet ds,string TabelName)
    {
    SqlCommand cmd = CreateCommand(procName, prams);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds,TabelName);
    cmd.Parameters.Clear();
    }
    执行下面的语句会返回出来上面我发的xml。所以才去查阅msdn的。
    DataSet ds=new DataSet("history");
    Database db=new Database();
    SqlParameter[] para={
    new SqlParameter("@historyid",SqlDbType.VarChar,20,"490")
    };
    db.RunProcDS("sp_getResProject",para,ds,"project");
    ds.WriteXml("D:\\mcujob\\weblog\\resume.xml");
      

  5.   

    <project>
        <resumeid>499</resumeid>
        <skillsort>C</skillsort>
        <usedtime>24</usedtime>
        <skilllevel>精通</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>Visual Basic</skillsort>
        <usedtime>6</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
    还想知道有办法把上面这个合并成为这种格式么<project>
        <resumeid>499</resumeid>
        <skillsort>C</skillsort>
        <usedtime>24</usedtime>
        <skilllevel>精通</skilllevel>
        
        <resumeid>499</resumeid>
        <skillsort>Visual Basic</skillsort>
        <usedtime>6</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
      

  6.   

    public  void RunProcDS(string procName,SqlParameter[] prams,DataSet ds,string TabelName)
    {
    SqlCommand cmd = CreateCommand(procName, prams);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds,TabelName);
    cmd.Parameters.Clear();
    }
    执行下面的语句会返回出来上面我发的xml。所以才去查阅msdn的。
    DataSet ds=new DataSet("history");
    Database db=new Database();
    SqlParameter[] para={
    new SqlParameter("@historyid",SqlDbType.VarChar,20,"490")
    };
    db.RunProcDS("sp_getResProject",para,ds,"project");
    ds.WriteXml("D:\\mcujob\\weblog\\resume.xml");
    <project>
        <resumeid>499</resumeid>
        <skillsort>C</skillsort>
        <usedtime>24</usedtime>
        <skilllevel>精通</skilllevel>
      </project>
      <project>
        <resumeid>499</resumeid>
        <skillsort>Visual Basic</skillsort>
        <usedtime>6</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
    还想知道有办法把上面这个合并成为这种格式么<project>
        <resumeid>499</resumeid>
        <skillsort>C</skillsort>
        <usedtime>24</usedtime>
        <skilllevel>精通</skilllevel>
        
        <resumeid>499</resumeid>
        <skillsort>Visual Basic</skillsort>
        <usedtime>6</usedtime>
        <skilllevel>熟练</skilllevel>
      </project>
      

  7.   

    Click the link to solve your problem.Good luck!