我正在寻找伪代码来编写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
答案 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
来保存数据而不是调用填写
,检索数据。