0

私はここで多くの記事を読みましたが、解決策を完全には見つけていません。VB.NETアプリケーションで使用されるSQLServerExpressデータベースがあります。MSIファイルを介してアプリケーションをパッケージ化して展開しましたが、データベースファイルをパッケージに含める方法がわからないことを除いて、すべてがうまく機能しています。これを行うには、3つの一般的な方法があることを理解しています(手動でファイルをコピーする、カスタムアクション、およびSQLスクリプト)。ここでは特別なことは何も必要ありませんでした。アプリがアクセスできるように、DBをクライアントマシンに配置する簡単な方法です。

DBを手動でコピーするのが最も速いオプションであると判断しました。作業ディレクトリと\DATAクライアントのSQLServerExpressインストールのディレクトリに配置しようとしましたが、アプリが接続されませんでした。また、プロジェクト内の接続を変更して、展開プロジェクトを再構築してクライアントマシンに再インストールする.\SQLEXPRESS代わりに試しましたが、スープはありませんでした。[my_computer_name]\SQLEXPRESS同じ問題。プロジェクトの「UserInstance」プロパティを「True」に変更しようとしましたが、プロジェクトでそのアクションを保存できませんでした。

手動コピーがこれを行うための最も速くて簡単な方法であると私は正しいですか?

4

2 に答える 2

2

attachファイルを Sql Server インスタンスに移動する必要があります。

CREATE DATABASE YourDatabaseName 
    ON (FILENAME = 'C:\your\data\directory\your_file.mdf'), 
    (FILENAME = 'C:\your\data\directory\your_file_Log.ldf') 
FOR ATTACH; 
于 2012-09-03T21:13:28.593 に答える
0

クライアント マシンで実行中の SQL Server にデータベース ファイルを接続する必要があります。これは、構成ファイル (app.config または web.config) に保存されている接続文字列のこのバリエーションを使用して簡単に実行できます。

Server=.\SQLExpress;AttachDbFilename=where_you_have_stored_the_mdf_file;
        Database=dbname; Trusted_Connection=Yes;

|DataDirectory|または、置換文字列を使用できます。
このショートカットにより、フル パスをハードコーディングする必要がなくなります。
DataDirectory を使用すると、次の接続文字列を使用できます。

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\yourfile.mdf”
         Database=dbname; Trusted_Connection=Yes;
于 2012-09-03T23:08:50.993 に答える