1

VS 2008 のローカル データベース キャッシュ項目を使用して、ソース データベースとローカル データベースの両方を正常に同期しました。

ただし、データセットを使用せずに、別の dll/プロセス内から SQL CE db に直接アクセスする必要があります。その理由は、私のビジネス オブジェクト コードがデータセットを使用していないからです。

最終的なコードは次のようになります。

Dim conn As New SqlServerCe.SqlCeConnection("Data Source=C:\Development\UserDirectory\UserDirectory.DBSyncher\ProfDir.sdf;Persist Security Info=False;")
Dim cmd As New SqlServerCe.SqlCeCommand("Select EmailAddress from Employees Where ID=23", conn)
Dim returnString As String = ""

If conn.State = ConnectionState.Closed Then
    conn.Open()
End If
returnString = cmd.ExecuteScalar

conn.Close()
cmd = Nothing

同期された変更が表示されているデータセットを使用して非常に奇妙なことに気付きましたが、CE データベース ファイルに直接アクセスすると古いデータが返されます。同期されたデータはまったくありません。

私は何が欠けていますか?どんな助けでも大歓迎です。

4

1 に答える 1

1

理解した!

CE が処理中であることを忘れたため、データベース ファイル (.sdf) を Debug フォルダーにコピーします。プロジェクト内のデータベースではなく、そのデータベースを参照する必要があります。ドー!

于 2009-02-20T06:25:22.750 に答える