1

初めて C# Windows アプリケーションを開発しています。

Que 1 - ) 以下の接続文字列を使用して、SQL Server 2008 を使用する Windows アプリケーションを開発しました。

Data Source=myMachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

しかし、アプリケーションのセットアップを作成して別のコンピューターにインストールすると、SQL サーバーとの接続を確立できませんでしたというエラーがスローされます。

このエラーは、私のコンピューターに固有のものであり、別のコンピューターにインストールできないため、接続文字列が原因であると思います..

したがって、どのコンピューターでも動作する接続文字列を作成するにはどうすればよいですか..

質問 2 - データベースを他のコンピューターに作成する方法として、スキーマ ファイルをセットアップと共に添付する必要がありますか??

これはばかげた質問かもしれませんが、私はこれが初めてなので、これについてすべて知りません。

ここに画像の説明を入力

よろしく、 マヘシュ

4

2 に答える 2

2

Web構成はxml形式のapp.configファイルに配置する必要があります。そしてあなたのコードからそれを読んでください。あなたはマシンに応じてメモ帳を介してapp.configファイルを簡単に変更することができます。

はい、セットアップからスキーマスクリプトを作成する場合は、セットアップにスキーマスクリプトが必要です。それ以外の場合は、クライアントマシンでデータベースマニュアルを作成します。

于 2012-08-23T08:59:04.970 に答える
1

開発マシンでSQLServerを使用したことがある場合は、アプリを使用するすべてのコンピューターにSQLServerをインストールする必要があります。この問題を解決するには、いくつかのオプションがあります。

アプリが中央のSQLサーバーにアクセスする必要がない場合(たとえば、アプリがユーザーのDVDを追跡するだけの場合)、代わりにSQL Server Compact Editionを使用して、アプリに埋め込みます。

アプリにある種の一元化されたデータが必要な場合は、最初に専用のSQLサーバーを取得し、そこに必要なものをすべてインストールして、アプリで現在のmyServerAddressをサーバーのアドレスに変更します。サーバーはリモートロケーションからアクセス可能である必要があることに注意してください(ローカルホストへのアクセスを制限するものもあります!)。

Que 2-データベースを他のコンピューターに作成する方法として、セットアップにスキーマファイルを添付する必要がありますか?

繰り返しますが、複数のオプション。たとえば、データベースを.sqlファイルにエクスポートし(DBエクスプローラーでデータベースを右クリックしてオプションを選択Publish to provider)、他のコンピューターのSQLマネージャーを使用してインポートできます。または、C#コードを使用して同じジョブを実行する.csインストールスクリプトを作成することもできます。

OPのコメントに基づいて編集します。

ソリューションのリンク例:

質問1:インストーラーへのSQLServer CEの埋め込み 質問2:http ://support.microsoft.com/kb/307283

大丈夫ですが、データソースが私の特定のマシン名であるため、その場合は現在の接続文字列が機能します

もちろん、SQLServerCEデータベースファイルを指すように変更する必要があります。おそらく最善の方法は、ハードコーディングせずに、データベースへの相対パスを使用することです。たとえば、次のようになります。

Data Source=|DataDirectory|\MyDb.sdf、ここで、はアプリケーションのフォルダを|DataDirectory|指します。App_Data

また、質問に添付したエラー画面マップも参照してください。

エラーは非常に明確です。データベースへの接続の確立に問題がありました。存在しないか、現在のマシンからアクセスできません。

于 2012-08-23T08:58:06.127 に答える