0

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

4

2 に答える 2

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"];
于 2012-04-12T10:48:34.383 に答える
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);
于 2012-04-12T10:50:31.747 に答える