在vb.net中同步两个mysql数据库

时间:2014-01-02 07:24:07

标签: mysql sql database vb.net

我正在尝试同步两个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张桌子。我怎么能实现这个目标?

1 个答案:

答案 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

“如果表格结构发生变化,此方法将无效” - 表格结构的更改频率如何?如果确实如此,则提前了解它并修改您的代码以处理更改。