繁体   English   中英

如何在C#中从web.config访问默认连接字符串

[英]How to access the default connection string from web.config in c#

我有以下配置的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />
  </configSections>
  <dataConfiguration defaultDatabase="myConnectionString" />
  <connectionStrings>
    <add name="myConnectionString" connectionString="Data Source=mydatasource;Max Pool Size=100;Pooling=true; Initial Catalog=MyDB;User ID=Myuser;Password=Password;Connection Timeout=60" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
  </startup>
</configuration>

如您所见,我已经将默认数据dataconfiguration设置为使用myConnectionString作为默认连接字符串,但是在(c#)后面的代码中,如何在不提供名称即myConnectionString情况下访问该连接字符串

所以在下面的代码中:

string connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;

SqlConnection cnn = new SqlConnection(connectionString);

SqlBulkCopy sbc = new SqlBulkCopy(cnn);

我想跳过硬编码连接字符串的名称。

var dataConfig = (Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings)System.Configuration.ConfigurationManager.GetSection(
    "dataConfiguration");

string connectionString = ConfigurationManager.ConnectionStrings[dataConfig.DefaultDatabase].ConnectionString;

从定制配置节和DatabaseSettings类的典型用法可以看出这一点。

编辑:我已经使用您的确切app.config在LINQPad中对其进行了测试,得到了结果:

Data Source=mydatasource;Max Pool Size=100;Pooling=true; Initial Catalog=MyDB;User ID=Myuser;Password=Password;Connection Timeout=60

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM