C# Winforms アプリケーションがあります。アプリケーションの一部は、SQLite テーブルの内容を取得し、それをデータグリッド ビューの画面に表示します。複数のユーザー/コンピューターがアプリケーションを使用している場合に問題があるようです。
プログラムが読み込まれると、SQLite DB エンジンへの単一の接続が開かれ、ユーザーがプログラムを終了するまで開いたままになります。ロード時に、問題のテーブルを更新し、定期的に更新し続けます。1 人のユーザーがテーブルを使用している場合、またはその 1 人のユーザーがプログラムの複数のインスタンスを開いている場合、テーブルは正しく更新されます。ただし、複数の人が使用している場合は、プログラムを閉じて再度開くまで、他のユーザーが行った変更がテーブルに反映されないようです。
例 - 最初のユーザー (ユーザー A) がログインします。テーブルには 5 つのエントリがあります。彼らはそれに1を追加します。現在、6 件のエントリがあります。ユーザー B がログインすると、6 つのエントリが表示されます。ユーザー A は別のレコードを入力し、合計で 7 になります。ユーザー B には、自動更新の後でも 6 が表示されます。そして、プログラムを終了して再開するまで、7 は表示されません。ユーザー A には問題なく 7 が表示されます。
この問題の原因は何ですか?自動更新が適切に機能していることを 100% 確信しているため、SQLite の DB エンジンに関連するものでなければなりません。先行書き込みログ機能または接続プーリング (有効にした) と関係があると思われます。何が起こるかを確認するために両方を無効にしましたが、同じ問題が発生しました。