2011-08-10 8 views
1

私はデータベースとしてSQL Serverを使用するアプリケーション(WinForms)を持っています。SQL Serverデータベースに接続するためのConnectionString?

ConnectionStringにはapp.configファイルを使用しています。

は、あなたがそのData Source=abc-79f1f531c9fを見ることができます私のapp.configファイル

<configuration> 
    <connectionStrings> 
    <add name="dbConnectionString" 
     connectionString="Data Source=abc-79f1f531c9f;Initial Catalog=ItemStockInParth;Integrated Security=True;Pooling=False" 
     providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
</configuration> 

を見てください。

ここに==>abc-79f1f531c9fは私の(開発者の)PCで動作しているサーバ名です。

アプリケーションがクライアントのサイトにインストールされているときは、クライアントマシンで使用されるクライアントマシンまたはサーバー名で実行されているサーバー名にサーバー名を変更する必要があります。

この状況を処理するための最良の基準は何でしょうか?

私は新しいフォームを作成して、Server Nameを入力して、私はConnectionStringを作成する必要がありますか?

動的にservernameを取得していますか?

App.configファイルのクライアントマシン(またはクライアントマシンが使用するサーバー名)のServer Nameをハードコードするだけですか?

+0

クライアントマシンにSQL Serverがプリインストールされていますか?または、ソフトウェアの展開と同時にクライアントにSQL Serverがインストールされていますか? – tzup

+0

私はクライアントマシンにMSSQL Serverをインストールします。クライアントマシンに私のアプリケーションをインストールする時点です。[私はあなたが私のApplicaitonをインストールするときにすべてのマシンにMSSql Serverをインストールしなければならない単一のアプリケーションを持っている] –

+1

手動でSQL Serverのインストールの手間を経なければ、私は新しいSQL Serverインスタンス名をapp.configに追加します。 – tzup

答えて

1

あなたはおそらく、ユーザーがサーバーの名前を入力することができる場所を提供したいと思うでしょう http://krishnapyrmca.wordpress.com/2010/11/23/get-sql-server-name-using-c/

+0

この種のC#コードを使用して 'ConnectionString'を動的に作成することは、よりよい解決策があるのか​​という唯一の解決策ですか?お返事ありがとうございました –

2

探しているものがこれですか、あなたならば.....助けてください(例えば、@ user350374で参照されるコードを使用するなどして)ネットワーク上で利用可能なサーバーのリストを提供してください。これは、あなたが正常にConfigurationManager.ConnectionStrings['dbConnectionString'].ConnectionStringを言うだろう、すなわち、コンフィギュレーションクラス、から接続文字列を要求する場所を取るでしょう

var builder = new SqlConnectionStringBuilder(); 
builder.DataSource = ##SERVER NAME FROM USER## 
builder.InitialCatalog = "ItemStockInParth"; 
builder.IntegratedSecurity = true; 
builder.Pooling = false; 

string connectionString = builder.ConnectionString; 

using (SqlConnection con = new SqlConnection(connectionString)) 
{ 
    con.Open(); 

    // use the connection here for your code 

    con.Close(); 
} 

:あなたはそれがSqlConnectionStringBuilderクラスを使用して必要があるとして、次に、あなたは適切な接続文字列を生成することができます。

+0

ありがとうございました。そしてBTWは、デベロッパーズ・サーバーからクライアント・マシンが使用するサーバーにDataBaseを移動する最善の方法でなければなりませんか? –

2

あなたは、プログラムのapp.configで定義されているのconnectionStringsのリストを読み込むことができますので、私はあなたが使用する1つのユーザーの接続文字列のリストを作成し、頼む提案:

foreach(ConnectionStringSettings setting in ConfigurationManager.ConnectionStrings) 
{ 
    ... 
} 

それは依頼するよりはましだが接続文字列のエントリに素敵な名前を付けることができるので、サーバー名のために。

0
<add key="Connectionstring" value="Data Source=.; 
    AttachDbFilename=|DataDirectory|\AppData.mdf; 
    Initial Catalog=Appdata;Integrated Security=True"/> 
<add key="Connectionstring" value="Data Source=.; 
    AttachDbFilename=|DataDirectory|\AppData.mdf; 
    Initial Catalog=Appdata;Integrated Security=True"/> 

は単にapp.configファイルにこのコードを追加して、セットアップ・ファイルにデータベースを接続します。 プロジェクトの設定ファイルから自動的にデータベースを取得します。

関連する問題