SQL Server データベースを使用して C# で Windows フォーム アプリケーションを開発しています。データを挿入および取得できますが、実行時のみです。もう一度実行すると、以前に挿入されたデータは表示されません。
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True"
SQL Server データベースを使用して C# で Windows フォーム アプリケーションを開発しています。データを挿入および取得できますが、実行時のみです。もう一度実行すると、以前に挿入されたデータは表示されません。
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True"
User Instance と AttachDbFileName=のアプローチ全体に欠陥があります - せいぜい! .mdf
Visual Studio でアプリを実行すると、ファイルが (App_Data
ディレクトリから出力ディレクトリ (通常.\bin\debug
はアプリが実行される場所) に) コピーされ、ほとんどの場合、問題なく動作しますが、間違ったINSERT
ものを見ているだけです。最後にmdfファイル!
このアプローチに固執したい場合は、myConnection.Close()
呼び出しにブレークポイントを設定してから、 .mdf
SQL Server Mgmt Studio Express でファイルを調べてください。データがそこにあることはほぼ確実です。
私の意見では、本当の解決策は
SQL Server Express をインストールします (とにかく、既に完了しています)。
SQL Server Management Studio Express をインストールする
SSMS Expressでデータベースを作成し、論理名を付けます (例: MyDB
)
論理データベース名(サーバー上で作成したときに指定) を使用して接続し、物理データベース ファイルとユーザー インスタンスをいじらないでください。その場合、接続文字列は次のようになります。
Data Source=.\\SQLEXPRESS;Database=MyDB;Integrated Security=True
そして、それ以外はすべて以前とまったく同じです...
同様の問題がありました。
bin フォルダー内の .mdf ファイルとログ ファイルを削除してから、app.config ファイル内のパスを次のように変更できます。
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Path \yourdatabasefile.mdf;Integrated Security=True;User Instance=True"