「ファンシー」なデータベースフロントエンドである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