我的代码是这样下的(如下):我想把多个datatable放进一个dataset中,但是结果只加进去了第一个datatable,其他的都没加进去,请高手赐教:        DataTable dt = myProvider.GetData(QueryStr);
        DataTable dt1 = new DataTable();
        DataSet ds = new DataSet();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            string sql = "select xy_studyid,xy_name,xy_idcard from gongjiao_xy_basicinfo where xy_studyid='"+dt.Rows[i]["xy_studyid"]+"'";
            dt1 = myProvider.GetData(sql);
            
            dt1.Rows[0]["xy_studyid"].ToString();
            
            ds.Tables.Add(dt1);
           
        }

解决方案 »

  1.   

    DataTable dt = myProvider.GetData(QueryStr); 
                    DataSet ds = new DataSet(); 
            for (int i = 0; i < dt.Rows.Count; i++) 
            { 
                DataTable dt1 = new DataTable();             string sql = "select xy_studyid,xy_name,xy_idcard from gongjiao_xy_basicinfo where xy_studyid='"+dt.Rows[i]["xy_studyid"]+"'"; 
                dt1 = myProvider.GetData(sql); 
                
                dt1.Rows[0]["xy_studyid"].ToString(); 
                
                ds.Tables.Add(dt1); 
              
            }结贴给分。楼下是猪
      

  2.   

      DataTable dt = myProvider.GetData(QueryStr); 
            
            DataSet ds = new DataSet(); 
            for (int i = 0; i < dt.Rows.Count; i++) 
            { 
                string sql = "select xy_studyid,xy_name,xy_idcard from gongjiao_xy_basicinfo where xy_studyid='"+dt.Rows[i]["xy_studyid"]+"'"; 
                DataTable dt1 = new DataTable(); 
                dt1 = myProvider.GetData(sql); 
                
                //dt1.Rows[0]["xy_studyid"].ToString(); 
                
                ds.Tables.Add(dt1); 
              
            }
      

  3.   

    DataSet有个Tables属性,这是个DataTable集合,你可以直接add或者insert
      

  4.   

    因为你在循环中得到的是多个DataTable,但是你只有一个DataTable对象去接收,这样的话,因为循环内部没有信件DataTable,第i+1次循环生成的DataTable会把第i次的结果给覆盖掉,所以,你上面的代码只能将最后一次循环得到的DataTable追加进DataSet。
    修改的方法是:在循环外声名一个DataTable的变量,每次循环都新建一个DataTable实例就好了!
    其实DataSet中存放的并非是DataTable本身,而是DataTable的地址映射,新建后,有分配了一个新的地址,再有数据就不会覆盖了!