我正在尝试编写一个程序VB.net这是一个'花哨'的数据库前端。 该程序要做的是将数据库从“服务器”数据库所在的共享位置本地存储在用户计算机上。合并Access数据库
本地和服务器副本都存储到数据集中,然后程序检查服务器副本以查看它最近是否有任何更新。如果有,它只会下载更新以减少带宽。
我想要做的是强制本地数据库承担服务器数据库更改。但是,使用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
您是否添加了创建和更新所有表格的时间戳? – Fionnuala 2012-08-09 11:31:40
我还没有,但是我打算在每条记录上做这个。但是,这只需要同步到一边。本地副本永远不会被写入,它将始终是只读的。用户只会从中读取数据,它只是该机器设法抓取的最新服务器的“副本”。 – 2012-08-09 11:43:27
也许我不明白?对我来说,最简单的事情就是存储上次更新的日期,然后复制下面的任何内容。 – Fionnuala 2012-08-09 11:46:23