2

予約システムを作成していますが、データソースの特定のパスから相対パスに変更すると、データベース接続で問題が発生しました。特定のデータソースがある場合、データベースを更新して新しいアイテムを追加できます。しかし、相対パスに変更すると、実行時にすべてが正常に機能しますが、プログラムを閉じると、変更または追加したものはすべて破棄され、再度開くと何も保存されません。相対パスは次のようになります

SqlConnection SQLCN = new SqlConnection
(@"Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\Databas\TestDatabase.mdf;
Integrated Security=True;User Instance=True");

なぜそれがこのようになるのか考えていますか?

4

1 に答える 1

0

これは、ビルドごとにデータベースをオーバーライドするためです。

おそらく、あなたは へのBuild Actionセットと へContentCopy to Output Directoryセットを持っていますCopy If Newer

値に関する@steveのリンクCopy if newerから:

.mdb または .mdf ファイルには、このオプションをお勧めしません。データベース ファイルは、データが変更されていない場合でも変更される可能性があります。データ ファイルの接続を開くだけで (たとえば、サーバー エクスプローラーで [テーブル] ノードを展開することによって)、それを新しいものとしてマークできます。

于 2012-12-14T12:07:15.780 に答える