DataSet dsMain = new DataSet();
dsMain.Tables.Add(ds.Tables[0].Copy());

解决方案 »

  1.   

    同意DataSet2.Merge(DataSet1);,DataSet dsMain = new DataSet();
    dsMain.Tables.Add(ds.Tables[0].Copy());是不增加一张ds存在的表而已,不是合并。
      

  2.   

    但是我合并后,为什么DataSet2中的数据表中没有数据呢?也不出错,不知道为什么?
      

  3.   

    我的测试程序如下:
    DataSet ds_PackageInfo = new DataSet();
    string sql_Str ="select * from T_Source_PackageInfo";
    ds_PackageInfo = Operate_DB(sql_Str,false);

    DataSet tem =new DataSet();
    sql_Str ="select * from tem";
    tem = Operate_DB(sql_Str,false);MessageBox.Show(tem.GetXml());
    ds_PackageInfo.Merge(tem,true);//Operate_DB是我自定义的函数,里面只包括连接数据库信息,返回的就是Sql语句的结果集
    //tem表和T_Source_PackageInfo表的数据结构是完全一致的。tem表中有数据,T_Source_PackageInfo表中有数据和没有数据,Merge后数据都没有变化。请高手们指点迷津啊,我这里给好心人拜年了,祝大家新年快乐!!!!谢谢
      

  4.   

    哦,我看到了,ds_PackageInfo里面有数据了,但是实际数据库中的表数据没有进行更新,不知道为什么。我加了语句:ds_PackageInfo.AcceptChanges();也是不可以。那么如何更新实际的数据库表呢?
      

  5.   

    同意DataSet2.Merge(DataSet1);,
    Odbcadapter.update(DataSet1);
      

  6.   

    OleDbConnection dbConn = new OleDbConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
       OleDbDataAdapter dbAdapt = new OleDbDataAdapter(sql,dbConn);
       OleDbCommandBuilder dbCB = new OleDbCommandBuilder(dbAdapt);   dbConn.Open();
       DataSet dbSet = new DataSet();
       dbAdapt.Fill(dbSet, "tblFile");
       DataSet dbset2= new DataSet();
       dbAdapt.Fill(dbset2,"tbl2");
       dbSet.Merge(dbset2);
       dbAdapt.Update(dbSet);
      

  7.   

    谢谢楼上的朋友,我已经这样试过了,但是数据库中的数据表数据还是没有更新。帮我看看我错在哪里好吗?
    DataSet ds_PackageInfo = new DataSet();
    string sql_Str ="select * from T_Source_PackageInfo";
    ds_PackageInfo = Operate_DB(sql_Str,false);string str_Conn ="user id=sa;password=res;data source=210.47.16.133;initial catalog=DB_SC_Source;";
    SqlDataAdapter DA = new SqlDataAdapter("select * from T_Source_PackageInfo",str_Conn);
    SqlCommand SC = new SqlCommand("select * from T_Source_PackageInfo");
    DA.UpdateCommand = SC;
    try
    {
       DA.Fill(ds_PackageInfo);
    }
    catch(Exception e)
    {
        MessageBox.Show(e.ToString());
    }DataSet tem =new DataSet();
    sql_Str ="select * from tem";
    tem = Operate_DB(sql_Str,false);ds_PackageInfo.Merge(tem);
    //在这里tem的数据已经在ds_PackageInfo数据里了。
    MessageBox.Show(ds_PackageInfo.GetXml());
    DA.Update(ds_PackageInfo);
    //但是数据库中数据还是没有更新
      

  8.   

    UpdateCommand怎么能用select,执行的时候不就是执行select命令了嘛,就不可能取更新数据库了。
      

  9.   

    用SqlCommandBuilder试试:
    SqlCommandBuilder SC = new SqlCommandBuilder(DA);
      

  10.   

    DataSet2.Merge(DataSet1);
    这样就行了
    关键是在更新这里
    用SqlCommandBuilder试试
      

  11.   

    xixigongzhu(夕夕公主)和liduke(天下有雪)说得对,一针见血啊。:)
      

  12.   

    好的,先谢谢大家。我用insert语句先将功能实现了。我有时间再试吧。谢谢大家的帮助,祝大家春节快乐。散分!!!!