0

我正在尝试在VB.net中编写一个程序,这是一个“花式”数据库前端。该程序的目的是将数据库从“服务器”数据库所在的共享位置本地存储在用户计算机上。

本地副本和服务器副本都存储在数据集中,然后程序检查服务器副本以查看其最近是否有任何更新。如果是这样,它只会下载更新以减少带宽。

我想要做的是强制本地数据库承担服务器数据库的更改。但是,当使用 data-adapter.update 时,它​​没有注意到任何变化,因为它重新加载服务器数据集的方式是清除它,然后从头开始重新加载。

是否有任何有效的方法将服务器数据集强制到本地数据集,然后强制本地数据集在 BGW 中重写数据库?正如我之前所说,如果我只是清除本地服务器并将服务器一台复制到本地一台,则 data-adapter.update 似乎不会保存更改。

抱歉,如果我为此完全走错了路。任何建议或指导将不胜感激。

约翰

    dsLocalDB.Clear() 'Clear the local dataset
    dsLocalDB = dbServerDB.Copy 'copy the server dataset to the local dataset
    LoadData() 'let the application reload all the new records


    Dim cb As New OleDb.OleDbCommandBuilder(daLocalDB) 'Create a COmmand Builder
    For i = 1 To TableNames.GetUpperBound(0) 'Loop through all the tables which have been stored as an array
        For Each row As DataRow In dsLocalDB.Tables(TableNames(i)).Rows 'Loop through the rows, so we can see if it detects modified data. For testing purposes.
            If row.RowState = DataRowState.Modified Then 'Its found modified data!
                MsgBox("Found Modified Data Row!") 'Output a message
                Exit For 'exit the for loop
            End If
        Next
        daLocalDB.Update(dsLocalDB, TableNames(i)) 'Update the local database
    Next i
4

1 回答 1

2

你可能想看看这个:

http://www.codeproject.com/Articles/18027/Take-Data-Offline-Using-Microsoft-Synchronization

PS:
如果你愿意接受善意的建议:你做错了。永远不要保留两个数据库。
同步两个数据库是一个非常微妙的过程。
甚至集群应用程序也使用实时同步。
如果你没有几年的经验,你很快就会产生混乱。
阅读文章中的免责声明(无保证、明示、暗示或法定)。

于 2012-08-09T11:19:41.260 回答