1

C# ウィンドウ フォーム アプリで生成されたデータを保存する必要があります。サービスベースのデータベースを使用し、必要なテーブルを作成してから、linq を使用してこれらのテーブルに値を挿入しました。実際にそれを使用してデータを保存しましたが、デバッグ後にすべてのデータが消去されていることがわかりました。実行時に指定した値が見つかりませんでした。誰かがそれを解決するのを手伝ってくれますか? データを保存するためのローカル データベースが必要です。クライアント システムで SQL SERVER を使用しない Win フォーム アプリを作成しています。

4

3 に答える 3

2

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でデータベースを作成し、論理名を付けます (例: YourDatabase)

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

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

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

于 2013-01-06T14:03:54.593 に答える
0
  1. App.Config ファイルで、パスをローカル DB パスに変更します。

    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename= C:\Users\Gerry\documents\visual studio 2013\Projects\DatabaseLocalApplication\DatabaseLocalApplication \Customers.mdf;Integrated Security=True"

これにより、保存操作が正しいデータベースに送信されます。この文字列を取得するには、データベースをクリックし、フル パス プロパティのエントリをコピーします。

次に、データベースの [出力ディレクトリへのコピー] を [コピーしない] に設定します。

于 2014-04-11T17:03:41.950 に答える
0

これと似たようなことを経験しましたが、同じかもしれません。を使用すると、データベースのコピーが に保存され\bin\Debug\ますData Source=|DataDirectory|\mydatabase.mdf。デバッグ モードでは、データはこのコピーに保存されます。

これは、データベース ファイルへのフル パス (例: C:\xxxx\yyy\mydatabase.mdf) を指定すると解決できますが、これは移植可能ではありません。これがあなたが望んでいたものであることを願っていますか?

于 2013-01-06T13:20:40.877 に答える