1

データベースを使用する WPF C# アプリケーションをパックしました。

ただし、パッケージ化されたアプリケーションをインストールすると、別のデータベースを作成するのではなく、Visual Studio (.mdf) を使用して最初に作成したデータベースが使用されます。

アプリケーションをパッケージ化する目的は、他のコンピューターで共有できるようにすることでした。そのため、アプリケーションのそのインスタンス用の新しいデータベースを作成するために必要なアプリケーションをインストールしました。

これを達成する方法はありますか?データベースがローカル インスタンスであることを示すために設定する必要があるプロパティはありますか? または、インストール時にパッケージに新しいパッケージを強制的に作成させますか?

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

2

ちょうど自分でこれをやっている途中だったので、私が提案することの1つは、SQL Compact Editionを使用するとプロセスがはるかに簡単になることですが、現時点でプロセスが遅すぎる場合は、現在のデータベースを使用してください。ただし、わかりません以下の方法がMDFファイルで機能する場合。

クライアント マシンにアプリケーションをどのように展開していますか? ユーザーのマシンにSQLがインストールされていますか?

最初に行う必要があるのは、MDF のプロパティに移動し、[出力ディレクトリへのコピー] が [コピー] に設定されていることを確認することです。

セットアップ プロジェクトを使用してアプリケーションをインストールする場合は、プロジェクト、アプリケーション プロパティ、パブリッシュ、アプリケーション ファイルで、mdf がリストにあり、Data File auto、required、および include に設定されていることを確認する必要があります。

インストーラーファイルシステムの「アプリケーションフォルダー」を右クリックし、プロジェクト出力、ファイルコンテンツを追加します

最後に、コード内の接続文字列を次のように変更します。

using ( SqlCeConnection sqlCon = new SqlCeConnection( @"Data Source=|DataDirectory|\App.sdf;Persist Security Info=False;" )

またはコンパクト版を使用していない場合

using ( SqlConnection sqlCon = new SqlConnection( @"Data Source=|DataDirectory|\App.mdf;Persist Security Info=False;" )

^「DataDirectory」を使用すると、ユーザーがどこにアプリケーションを配置しても、常に正しいファイルを取得できます。

データベースを実行してコンパクトに変更する前に、適切なSQLデータベースがサポートする多くのことをサポートしていません。

このすべての後、アクセス許可に関するエラーが引き続き発生する可能性があります。かなり長い間、ステップを逃した可能性があるため、さらに必要な場合はコメントしてください。

EDIT ユーザーがSQL ServerまたはSQL Compactを持っていない場合、最も簡単な解決策は、SQL CEをインストールするように要求するか、同じことを行うDLLを使用する方法がありますが、それを機能させることができませんでした

そのリンクはここにありますhttp://msdn.microsoft.com/en-us/library/aa983326.aspx

于 2012-05-25T11:14:44.027 に答える
1

データベースがクライアント側にデプロイされていることを確認し、アプリケーションの接続文字列を変更してそれを指すようにします。

于 2012-05-25T10:06:06.080 に答える