2016-12-23 9 views
0

C#アプリケーションをインストールするマシン用にパーソナライズされたデータベース接続文字列を作成しようとしています。私はVisual Studioを使用してデータベースを作成しましたが、それはデータベースの場所を私の個人用ディレクトリに向けるだけであり、一般的なものではありません。 アプリケーションを公開して他のコンピュータにインストールしようとすると、データベースで見つからなかったというエラーが表示されます。これは、接続文字列がパーソナルコンピュータのディレクトリを指しているためです。ここでパーソナライズされたデータベースC#アプリケーションの接続文字列

は、私のコードの一部です:

private void button13_Click_1(object sender, EventArgs e) 
{ 
    try 
    { 
     SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Program Files\\Hydrolec Inc\\PanelProgressLogger\\PanelProgress.mdf;Integrated Security=True;User Instance=True;"); 
     sda = new SqlDataAdapter(@"SELECT [Panel Progress].* 
            FROM [Panel Progress]", con); 
     fill_grid(); 
    } 
    catch (Exception error) 
    { 
     label6.Text = error.Message; 
    } 
} 

誰もがこの問題を解決するために、データベースがにインストールされるすべてのコンピュータのためのパーソナライズされた接続文字列を生成するために、正しい道に向けて私を導いてくださいことはできますか?

+2

これは、設定ファイルの大きなユースケースです。接続文字列をapp.configファイルに置き、宛先マシン上で変更します。設定を使用して設定情報を保存することもできます。 –

+0

'visual-studio'タグには次のようなものがあります:" Visual Studioに関する特定の質問がない限り、このタグは使用しないでください。現時点ではタグを削除できません。それが起こる前に承認が必要な保留中の編集があります。 – Amy

+0

私はまだ接続文字列があなたのコンピュータを指しているところを見ていません。ファイルパスが変更される可能性がありますか? – itsme86

答えて

-1

あなたのapp.configファイルまたはweb.configファイル(あなたと関連性の高いもの)で、設定タグの下に次の接続文字列を追加します。

<connectionStrings> 
    <add name="DbConnection" connectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Program Files\\Hydrolec Inc\\PanelProgressLogger\\PanelProgress.mdf;Integrated Security=True;User Instance=True;" /> 
    </connectionStrings> 

すでに接続文字列の部分は、接続文字列をコーディングあなたのC#コードの代わりに、ハードにのみ

<add name="DbConnection" connectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Program Files\\Hydrolec Inc\\PanelProgressLogger\\PanelProgress.mdf;Integrated Security=True;User Instance=True;" /> 

次に追加している場合は、あなたが設定値を使用することができます。

string connectionString = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString; 

    private void button13_Click_1(object sender, EventArgs e) 
    { 
     try 
     { 
      SqlConnection con = new SqlConnection(connectionString); 
      sda = new SqlDataAdapter(@"SELECT [Panel Progress].* 
           FROM [Panel Progress]", con); 
      fill_grid(); 
     } 
     catch (Exception error) 
     { 
      label6.Text = error.Message; 
     } 
    } 

ビルドしてください。次に、別のマシンにアプリケーションをデプロイするときは、ハードコードされた値を変更したり、アプリケーションを再構築したりせずに、app.configまたはweb.config内の接続文字列を新しいファイルの場所に変更するだけです再び。

+0

あなたの返信を謝るBuddhi。 私はあなたの方法を試しましたが、それは自分のコンピュータ上でのみ動作します。私はいくつかの他のコンピュータにアプリケーションをインストールすると、私に次のエラーが表示されます: "SQLサーバへの接続を確立する際に、ネットワーク関連またはインスタンス固有のエラーが発生しました" すべてのコンピュータにSQL Expressまたはサーバをインストールする必要がありますか?このアプリケーションをインストールしますか?またはこれを解決する方法はありますか? –

+0

接続文字列「データソース=。\\ SQLEXPRESS "は、ローカルマシンのSQLExpressを参照していることを意味します(ドットはアプリケーションがホストされているマシンを表します)。そのマシンにはSQLインスタンスがないのでエラーが発生します。接続文字列のDataSourceを " \\ SQLExpress"に変更して、別のアクセス可能なDBサーバーを参照することができます。 –

関連する問題