デバッグセッション中に正しく表示されているにもかかわらず、C#コンソールアプリケーションが終了すると、新しく追加されたデータベースレコードが消滅します。
調査:この問題は、SQL Server Compact Edition 4を使用する場合にしばしば発生します。接続文字列は、通常、デバッグ中にアプリケーションのBindebugフォルダーにデータベースを配置する「| dataDirectory |」を使用します。 アプリケーションは、このデータベースを正常に接続および更新します。 ただし、Visual Studioのサーバーエクスプローラーは、プロジェクトのルートフォルダーにある別のデータベースファイルを表示する場合があります。これは、サーバーエクスプローラーが個別の接続文字列を使用しているためです。
解決策:
コアの問題は、「| datadirectory |」の使用にあります。 アプリケーションがデバッグフォルダーのデータベースを更新している間、Visual Studioはこのデータベースを再起動のプロジェクトフォルダーからコピーで上書きします。これにより、変更が効果的に取り消されます。
これを修正するには、プロジェクト設定のデータベースファイルの「コピー」プロパティを調整します。 「新しい場合はコピー」または「決してコピーしない」に設定します。これにより、Visual Studioがデバッグフォルダーのデータベースを置き換えることができなくなります。別のアプローチは、サーバーエクスプローラーに2つの接続を作成することです。1つはプロジェクトフォルダーのデータベースを指し、もう1つはデバッグフォルダーのデータベースを指します。これにより、展開データベースに影響を与えることなくコードによって行われた変更を観察できます。 これらのソリューションを実装することにより、アプリケーションの閉鎖後にデータベースの変更が持続することを確認でき、デバッグの観察結果はデータベースの状態を正確に反映します。
以上がC#アプリケーションを閉じた後、なぜデータベースの変更が消えるのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。