最好的方法是使用sqlcommand然后使用命令
"insert into a.dob.test (a ,b ) select a,b from b.dbo.test where condition"

解决方案 »

  1.   

    楼主说可能是异种数据库啊,直接用SQL语句可能不行试试DTS吧。
      

  2.   

    sqlDataAdapter2.UpdateCommand.Connection=sqlConnection2;
    string upsql="update "+tb_TableName2.Text.Trim()+" set Longitude=";
    upsql+="'"+dataSet51.Tables[0].Rows[i].ItemArray[2].ToString().Trim()+"',";
    upsql+="Latitude='"+dataSet51.Tables[0].Rows[i].ItemArray[3].ToString().Trim()+"'";
    upsql+=" where id='"+dataSet51.Tables[0].Rows[i].ItemArray[1].ToString().Trim()+"'";
    upsql+=" and LineName='"+upOrdown+"'";
    sqlDataAdapter2.UpdateCommand.CommandText=upsql;
    try
    {
      sqlDataAdapter2.UpdateCommand.ExecuteNonQuery();//为什么执行这行会有异常?
    }
    catch
    {}
    这样行吗?
      

  3.   

    已经调用sqlConnection2.Open()方法了
      

  4.   

    可以考慮將table的數據從一個數據庫導出,再導入另一個數據的table.
      

  5.   

    我又试了下面的方法:
    dataSet21.Tables[0].Rows[i].ItemArray[2]=dataSet11.Tables[0].Rows[i].ItemArray[2];
    dataSet21.Tables[0].Rows[i].ItemArray[3]=dataSet11.Tables[0].Rows[i].ItemArray[3];
    .....
    sqlDataAdapter2.Update(dataSet21);
    其中,我已经把两个服务器的数据库中相应表的内容读到了两个DataSet中,可是上面的代码执行没有错误,但是为什么赋值不了啊,也就是执行完赋值之后,dataSet21的内容还是不变啊??????
      

  6.   

    dataSet21.Tables[0].Rows[i].ItemArray[3]这些东西是引用还是值行?
    你这样的赋值能够使旧的ItemArray产生新的实例吗?
    我还是觉得开老老实实newrow(),然后在老老实实的add()。
    我有一各方法曾经用过。
    为目标数据库表生成DataAdapter,以及数据及全套,因为是单表,建议你使用定义SelectCommand,然后用CommandBliuder来为他自动生成InsertCommand。
    为原数据表生成DataReader对象。读到一各,就往目标数据集、表中新增一各,放一个。
    效率很高。