2012-04-12 16 views
0

TableAdaptersで作成したDataTablesを使用してレポートを生成するプログラムがあります。今私のクライアントは新しいデータベースを持っており、新しいデータベースと古いデータベースを切り替えることができるようにしたいと考えています。私はapp.configの接続文字列を変更することでそれを行うことができることを発見しましたが、実行時にどのように行うのかわかりません。私に方法を提案できますか? おかげapp.configで接続文字列を変更する方法

答えて

7

私は

ないで、実行時にどのように行うのか分かりません。 接続文字列をapp.configに設定し、必要に応じてアクセスすることができます。

構成:コードで

<connectionStrings> 
    <add name="conn1" providerName="System.Data.SqlClient" 
     connectionString="..." /> 
    <add name="conn2" providerName="System.Data.SqlClient" 
     connectionString="..." /> 
</connectionStrings> 

var conn1 = ConfigurationManager.ConnectionStrings["conn1"]; 
var conn2 = ConfigurationManager.ConnectionStrings["conn2"]; 
+0

することを効果TableAdapters?私はTableAdapterを作成するときに、使用する接続を指定する必要があることを知っています。私は複数の接続文字列を持つことができることを知っていますが、そのスイッチがアプリケーション全体に影響を与えるようにそれらのスイッチを切り替える方法 – NDraskovic

+0

@NDraskovic - 使用する接続ごとに決定する必要があります。どのクラスを自分のクラスに抽象化するかを抽象化すると、異なる接続文字列にアクセスする中心点が得られます。 – Oded

+0

申し訳ありません私の考えを伝えて、それが妥当かどうか教えてください:必要なデータを保持するDataTableを作成するTableAdapterを作成できます。これらのデータベースは同じスキーマを持っているので、TableAdapterの接続を変更するだけで済みます。必要なデータベースのデータでDataTableを満たす必要があります。これを行うことができますか?どのように私はそれを行うのですか? – NDraskovic

1

あなたはこのような複数の接続文字列を定義することができます。

<add name="Conn" connectionString="Data Source=PC\SQLEXPRESS;Initial Catalog=NHIB;Integrated Security=True" providerName="System.Data.SqlClient"/>--> 
<add name="Conn1" connectionString="Data Source=WINSERVER;Initial Catalog=NHIB1;Integrated Security=True;" providerName="System.Data.SqlClient"/> 

を、その後、あなたがオンラインでCONNやCONN1を使用することができますあなたの要件に基づいて..

SqlConnection con; 
con = new SqlConnection(ConfigurationManager.AppSettings.Get("Conn")); Or 
con = new SqlConnection(ConfigurationManager.AppSettings.Get("Conn1")); 

あなたは以下のようにそれらを切り替えることができます。

string connectionString = HttpContext.Current.Request.IsLocal ? 
ConfigurationManager.ConnectionStrings["Conn"].ConnectionString : 
ConfigurationManager.ConnectionStrings["Conn1"].ConnectionString; 
yourDataContext = new YourApplicationDataContext(connectionString); 
+0

設定からキーを取得するようにOPを表示する方が良いでしょう –

+0

なぜ、あなたは専用のConnectionStringsではなく 'AppSettings'を使っていますか? – Oded

+0

それは..... –

関連する問題