我正在尝试同步两个mysql数据库。 我已设法使用此方法同步表:
Dim oldbcon As New MySqlConnection("server=localhost;database=psugsonline;userid=root;password=;")
Dim dbconn As New MySqlConnection("server=localhost;database=psugs;userid=root;password=;")
Dim da As New MySqlDataAdapter("select * from tbusers where sync='false'", dbconn)
Dim ds As New DataSet
ds.Clear()
da.Fill(ds)
If ds.Tables(0).Rows.Count > 0 Then
Dim x As Integer
For x = 0 To ds.Tables(0).Rows.Count - 1
Dim instbuser As New MySqlCommand("insert into tbusers values('" & ds.Tables(0).Rows(x)(0).ToString & "','" & ds.Tables(0).Rows(x)(1).ToString & "','" & ds.Tables(0).Rows(x)(2).ToString & "','" & ds.Tables(0).Rows(x)(3).ToString & "','true')", oldbcon)
oldbcon.Open()
instbuser.ExecuteNonQuery()
oldbcon.Close()
Next
End If
但是这个方法只适用于我的一个表,如果表结构发生了变化,这个方法将不起作用。
我要同步16张桌子。我怎么能实现这个目标?
答案 0 :(得分:0)
Dim listOfConnectionStrings = New List(Of String)
listOfConnectionStrings.Add(connectionString1)
listOfConnectionStrings.Add(connectionString2)
等
然后按照您已经完成的方式连接到源数据库并构建查询字符串(即INSERT INTO TABLE(X,Y,Z)VALUES(A,B C)
最后
For Each str In listOfConnectionStrings
'connect to the database and run the insert statement against it
Next
“如果表格结构发生变化,此方法将无效” - 表格结构的更改频率如何?如果确实如此,则提前了解它并修改您的代码以处理更改。