to: lyrixliu() 
就这么简单嘛?ds1.Merge(ds2)之后就会更新到数据库db1了吗?

解决方案 »

  1.   

    不好,这是合并,而非复制。
    如果你一定要用到DataSet,我建议你进行DataTable级别的Copy。
    如果不使用数据集(DataSet),我建议你使用Command对象直接调用SQL语句,通过执行非返回结果的方法来达到数据转移复制的目的。我认为这是最简单的。
    经过数据集的话,效率对大大减低。
      

  2.   

    我建议你使用Command对象直接调用SQL语句,通过执行非返回结果的方法来达到数据转移复制的目的
    这个怎么实现?
      

  3.   

    insert into db1.tables1...(select * from db2.tables1...)
    Command 对象直接调用SQL
      

  4.   

    to changezhong (这是最好的方法了能用sql语句完成的任务就用sql语句完成)
      

  5.   

    to changezhong , changezhong(小刀)
    我的db1在客户端机器上,db2在服务端机器上,现在能够从db2上返回ds2,
    我想把db2里面的数据更新到db1里面去。
    楼上的方法似乎不可行呀!
      

  6.   

    1.为目标数据库表生成DataAdapter,以数据集的形式存放。因为是简单表,所以建议你只定义SelectCommand,然后用CommandBliuder来为他自动生成InsertCommand等对象。2.对于源数据,请使用Command对象生成DataReader对象。逐行读取。不要采用数据集的形式存放数据。读到一行,就往目标数据集中的表新增一各,放一个。也就是使用NewRow()和Add()的方法。抱歉,我不喜欢给出代码,只讲方法。通常,我使用该方法来导入移动数据。
    目前开始研究使用DTS,这个效率最高。不过很复杂,还没弄懂。
      

  7.   

    Geoffrey1975(迅):我比价同意你的意见,开始也是向你这样做的,但是有的表可以,有的表就不可以总是提示insert 语句有错误!
    DTS的确比较好,但是我用的数据库是ACCESS
      

  8.   

    insert 语句?你的InsertCommand是自己写的还是自动生成的?
    你有没有试一下try一下异常,看看报什么类型的错。
    或者请你给出你的代码部份。
      

  9.   

    insertCommand是自动生成的!
      

  10.   

    我就不信,试试比较老土的方法:
    for(int i=0;i<dt2.rows.count;i++)
    {
    s0=dt2.rows[i][0];
    s1=dt2.rows[i][1];
    s2=dt2.rows[i][2];
    s3=dt2.rows[i][3];
    s4=dt2.rows[i][4];
    ...
    sqlstr="insert into db1.tables1 values('"+s0+"','"+s1+"','"+s2+"'...)"
            ...//执行sql
    }
      

  11.   

    我知道能用NewRow()和Add()的方法来更新一个DataTable,但怎么更新到数据库中去就不是很清楚了