在一个项目中,需要同时调用多个数据库中的信息,在C#的windows 程序中,如果使用微软企业类库的data access application block。
一般情况下在App.config中写入下面的内容,就可以访问指定的DB数据库,如果想访问另一个数据库DB1,那需要怎么办,或者有什么变通的办法
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/>
  </configSections>
  <connectionStrings>
    <add name="sqlconnstr" providerName="System.Data.SqlClient" connectionString="server=localhost;Integrated Security=SSPI;database=db"/>
  </connectionStrings>
  <dataConfiguration defaultDatabase="sqlconnstr"/>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>
谢谢大家!

解决方案 »

  1.   

    配置文件
    <connectionStrings>
    <add name="DB1" connectionString="server=127.0.0.1;database=DB1;uid=123456;pwd=123456" providerName="System.Data.SqlClient"/>
    <add name="DB2" connectionString="server=127.0.0.1;database=DB2;uid=123456;pwd=123456" providerName="System.Data.SqlClient"/>
    </connectionStrings>C# 代码
    using Microsoft.Practices.EnterpriseLibrary.Data;
    using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
    using System.Data.Common;string sql = "SELECT * FROM [Table1]";
    Database db = DatabaseFactory.CreateDatabase("DB1");// 切换DB2只要把DB1改成DB2
    DbCommand dbCommand = db.GetSqlStringCommand(sql);
    using (IDataReader dataReader = db.ExecuteReader(dbCommand))
    {
    if(dataReader.Read())
    {
    // to do something
    }
    }