2012-05-03 19 views
2

私はかなり新しいです。これまでのところ、とてもうまく学習できます。私には1つの質問、おそらく2つの質問があります。C#プロジェクトで実行時に接続文字列を選択

プロジェクトの開始時に接続文字列を選択できるようにするには、どのようにユーザーダイアログを作成しますか?私は同じスキーマを持つ4つのデータベースを持っており、ユーザーがプログラムを起動するときにどのデータベースに接続するかを選択できるようにしたいと考えています。

私は現在、データセットを使用していますが、希望の結果を得るために別の方法を学び、試してみます。

答えて

5

これらをconfigのconnectionStrings領域に入れ、接続文字列の名前を含むComboBoxをユーザーに提供します。次に、選択したものを使用します。あなたのコードで

<connectionStrings> 
    <add name="Environment1" connectionString="connString1" providerName="System.Data.SqlClient" /> 
    <add name="Environment2" connectionString="connString2" providerName="System.Data.SqlClient" /> 
    <add name="Environment3" connectionString="connString3" providerName="System.Data.SqlClient" /> 
    <add name="Environment4" connectionString="connString4" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

、コンボボックスに接続文字列を追加します:

foreach (ConnectionStringSettings connString in ConfigurationManager.ConnectionStrings) 
{ 
    myComboBox.Items.Add(connString.Name); 
} 

は、あなたが必要とするCONNSTRINGを取得し、それを使用して、コンボボックスから名前を取得し、あなたのコンフィグで

// Access chosen one: 
string chosenName = (string)myComboBox.SelectedItem; 
string connString = ConfigurationManager.ConnectionStrings[chosenName].ConnectionString; 
+0

DropDownListをコーディングして、適切な接続を選択してロードするにはどうすればよいですか?初心者の質問に対する私の謝罪。 – titancs

+0

編集してより多くのコードを追加しました。 – zimdanen

+0

あなたはWinFormsにいるので、ComboBoxが必要です。これを反映するように編集されました。 – zimdanen

1

さまざまなデータベースの接続文字列をに入れる必要がありますそして、あなたは結果を達成するためにConfigurationManagerクラスを使用することができます

<connectionStrings> 
    <add name="Database1" connectionString="Data Source=.\SQLEXPRESS;Initial 
    Catalog=db1;Integrated Security=True" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

::のようなzimdanenにより示唆されるようにのまたはweb.configファイル

foreach (ConnectionStringSettings connectionString in 
        ConfigurationManager.ConnectionStrings) 
{ 
    //YOU CAN ADD NAME OF CONNECTION STRING TO A COMBOBOX FOR USER TO MAKE 
    // A SELECTION 
    //connectionString.Name 
} 

選択がなされたら、との希望接続文字列を取得することができます次の行:

var s=ConfigurationManager.ConnectionStrings[<SELECTED NAME>].ConnectionString 
+0

これまでのところとても良いです。ちょうど1つの最終的な質問、私は思う。コードの最後のブロックで目的の接続を取得します。これを使用して、データセットで選択された接続が使用されていることを確認しますか? – titancs

+0

データセットをどのように満たしていますか? 's'は接続文字列を文字列として含みますので、必要な場所に渡してください。 – zimdanen

+0

ウィザードによってデータセットが生成されました。私は知っている、おそらく最良の方法ではないが、私は学んでいる。私は接続文字列が各TableAdapterのdataset.Designer.csファイルで定義されている場所を参照してください。最後のコードブロックはどこに置いて、どのように文字列を渡すのですか? – titancs

0

アプリケーション構成ファイルを追加して< connectionStrings>の接続文字列。コードでは、ConfigurationString.ConnectionStringを使用して、接続文字列のリストを列挙します。

関連する問題