【发布时间】:2019-06-27 10:16:31
【问题描述】:
我正在尝试在两台服务器之间移动数据。我在每台服务器上都有一个相同的表,包含 3 个字段,Customer_Code(varchar)、Customer_EmailAddress(nvarchar)、Customer_EmailAddressPosted(bit)。
Dim DT_EmailsToUpdatePreCheck As New DataTable
Dim DT_EmailsToUpdateStage As New DataTable
我从 Server1 中选择所有数据并存储到 DT_EmailsToUpdatePreCheck
TabletCommand.CommandText = "Select * from SOP_MissingCustomerEmail"
DT_EmailsToUpdatePreCheck.Load(TabletCommand.ExecuteReader)
TabletCommand.Parameters.Clear()
然后我遍历 DT_EmailsToUpdatePreCheck 并从 Server2 中获取 Customer_Code 和 Customer_EmailAddress 都不相同的记录数,并将数据存储到 DT_EmailsToUpdateStage 中。
For j As Integer = 0 To DT_EmailsToUpdatePreCheck.Rows.Count - 1
ServerCommand.CommandText = "Select Count(*) from SOP_MissingCustomerEmail where Customer_Code <> @Customer_Code and Customer_EmailAddress <> @Customer_EmailAddress"
ServerCommand.Parameters.AddWithValue("@Customer_Code", DT_EmailsToUpdatePreCheck.Rows(j).Item("Customer_Code"))
ServerCommand.Parameters.AddWithValue("@Customer_EmailAddress", DT_EmailsToUpdatePreCheck.Rows(j).Item("Customer_EmailAddress"))
If ServerCommand.ExecuteScalar = 0 Then
DT_EmailsToUpdateStage.ImportRow(DT_EmailsToUpdatePreCheck.Rows(j))
End If
ServerCommand.Parameters.Clear()
Next
最后我遍历 DT_EmailsToUpdateStage 将记录插入到 Server2 中
For i As Integer = 0 To DT_EmailsToUpdateStage.Rows.Count - 1
ServerCommand.CommandText = "Insert Into SOP_MissingCustomerEmail2 (Customer_Code, Customer_EmailAddress, Customer_EmailAddressPosted) Values (@Customer_Code, @Customer_EmailAddress, @Customer_EmailAddressPosted)"
ServerCommand.Parameters.AddWithValue("@Customer_Code", DT_EmailsToUpdateStage.Rows(i).Item("Customer_Code").ToString())
ServerCommand.Parameters.AddWithValue("@Customer_EmailAddress", DT_EmailsToUpdateStage.Rows(i).Item("Customer_EmailAddress").ToString())
ServerCommand.Parameters.AddWithValue("@Customer_EmailAddressPosted", DT_EmailsToUpdateStage.Rows(i).Item("Customer_EmailAddressPosted").ToString())
MessageBox.Show("Row Inserted")
ServerCommand.Parameters.Clear()
Next
但在插入中我收到“列 'Customer_Code' 不属于表”错误。 注意:最后两个代码块在 Try-Catch 块内。
【问题讨论】:
-
您是否尝试过在调试器中单步执行第二个循环?哪一行引发了异常?
标签: sql-server vb.net datatable