0

ローカルの SQL Server Express データベースをデータ ソースとして使用して、単純な Windows フォーム アプリケーションを作成しています。デバッグ中にデータベース ファイルがデバッグ フォルダにコピーされ、すべて正常に動作しますが、それは私が望むものではありません。データベース ファイルのコピーを 1 つだけ使用したいと考えています。

私が見つけた解決策は、接続文字列でデータベースファイルへのパスをハードコーディングすることでした:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db.mdf;Integrated Security=True;User Instance = true

それで、接続文字列のパスをハードコーディングするのではなく、1つのdbファイルのみを使用するようにVSを構成するよりインテリジェントな方法はありますか?

4

1 に答える 1

0

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

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

  1. SQL Server Management Studio Express をインストールします (まだインストールしていない場合)。

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

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

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

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

于 2013-08-21T11:43:52.477 に答える