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=のアプローチ全体に欠陥があります - せいぜい! .mdfVisual Studio でアプリを実行すると、ファイルが (App_Dataディレクトリから出力ディレクトリ (通常.\bin\debugはアプリが実行される場所) に) コピーされ、ほとんどの場合、問題なく動作しますが、間違ったINSERTものを見ているだけです。最後にmdfファイル!
このアプローチに固執したい場合は、myConnection.Close()呼び出しにブレークポイントを設定してから、 .mdfSQL 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"