从一个数据库中选择并将行插入新数据库

时间:2015-07-05 21:23:42

标签: vb.net datatable dataset dataadapter

我正在寻找伪代码来编写VB.NET游标,从一个数据库中的一个表中选择列,并将其插入到另一个数据库中的另一个表中(它们不在同一服务器上)数据适配器等 在我学习的时候,我只需要一些东西来指代。感谢

Dim selectStr As String = _         "从db1"

中选择*

Dim insertStr As String = _         "插入db2(col1)"

    Try
        da_adapter = New OleDb.OleDbDataAdapter(selectStr, connStr)
        da2_adapter = New OleDb.OleDbDataAdapter(insertStr, connStr2)

        da_adapter.SelectCommand.CommandTimeout = 720
        da_adapter.Fill(ds)

        da2_adapter.SelectCommand.CommandTimeout = 720
        da2_adapter.Fill(ds)
Catch ex As Exception

    End Try

1 个答案:

答案 0 :(得分:0)

在原始代码中,这部分是错误的:




  da2_adapter = New OleDb.OleDbDataAdapter(insertStr,connStr2)
  




以这种方式创建数据适配器时,您提供的SQL语句将成为 SelectCommand 的一部分。您希望自己成为 InsertCommand 的一部分,您需要自己完成:




  Dim cmd2 As New OleDb.OleDbCommand( insertStr,connStr2)

 da2_adapter = New OleDb.OleDbDataAdapter
 da2_adapter.InsertCommand = cmd2
  




此外,您需要将第一个数据适配器的 AcceptChangesDuringFill 属性设置为 False 。这样,在填充 DataTable 之后,不是将所有行的 RowState 设置为 Unchanged ,而是将它们保留为 Added 并准备插入。





然后需要在第二个数据适配器上调用 Update 来保存数据而不是调用填写,检索数据。