0

SQL Server データベースを使用して C# で Windows フォーム アプリケーションを開発しています。データを挿入および取得できますが、実行時のみです。もう一度実行すると、以前に挿入されたデータは表示されません。

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True"
4

2 に答える 2

5

User Instance と AttachDbFileName=のアプローチ全体に欠陥があります - せいぜい! .mdfVisual Studio でアプリを実行すると、ファイルが (App_Dataディレクトリから出力ディレクトリ (通常.\bin\debugはアプリが実行される場所) に) コピーされ、ほとんどの場合、問題なく動作しますが、間違ったINSERTものを見ているだけです。最後にmdfファイル

このアプローチに固執したい場合は、myConnection.Close()呼び出しにブレークポイントを設定してから、 .mdfSQL Server Mgmt Studio Express でファイルを調べてください。データがそこにあることはほぼ確実です。

私の意見では、本当の解決策は

  1. SQL Server Express をインストールします (とにかく、既に完了しています)。

  2. SQL Server Management Studio Express をインストールする

  3. SSMS Expressでデータベースを作成し、論理名を付けます (例: MyDB)

  4. 論理データベース名(サーバー上で作成したときに指定) を使用して接続し、物理データベース ファイルとユーザー インスタンスをいじらないでください。その場合、接続文字列は次のようになります。

    Data Source=.\\SQLEXPRESS;Database=MyDB;Integrated Security=True
    

    そして、それ以外はすべて以前とまったく同じです...

于 2013-06-18T12:52:38.303 に答える
0

同様の問題がありました。

bin フォルダー内の .mdf ファイルとログ ファイルを削除してから、app.config ファイル内のパスを次のように変更できます。

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Path \yourdatabasefile.mdf;Integrated Security=True;User Instance=True"

于 2015-05-09T14:23:45.887 に答える