【问题标题】:How to read App Setting key in Web config Connection string?如何在 Web config Connection 字符串中读取 App Setting 键?
【发布时间】:2015-11-27 04:46:26
【问题描述】:

可以对所有连接字符串输入使用应用程序键并读取连接字符串上的那些,如下所示

<add name="DefaultConnection" connectionString="Data Source=$(Server);Initial Catalog=$(Catalog);User ID=$(User);Password=$(Password)" providerName="System.Data.SqlClient" />



<add key="$(Server)" value="xxxx" />
<add key="$(Catalog)" value="xxxx" />
<add key="$(User)" value="xxxx" />
<add key="$(Password)" value="xxxx" />

【问题讨论】:

  • 你为什么要这样做?你想达到什么目的?
  • 我还需要将这些值作为应用键读取
  • 如果您不打算在应用程序的其他地方单独使用$(server) 和其他设置,那么您试图实现的目标似乎是不必要的。

标签: asp.net asp.net-mvc


【解决方案1】:

正如@Ertürk Öztürk 已经说过的那样 - 这是不可能的。

如果您正在寻找或多或少干净的方法,我建议您使用SqlConnectionStringBuilderDbConnectionStringBuilder(如果您使用的不是 MSSQL 数据库)。

在您的代码中,SqlConnectionStringBuilder 将是这样的:

//create connection string builder
System.Data.SqlClient.SqlConnectionStringBuilder connectionStringBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder();

//set all properties from your WebConfig
connectionStringBuilder.DataSource = ConfigurationManager.AppSettings["Server"];
connectionStringBuilder.InitialCatalog = ConfigurationManager.AppSettings["Catalog"];
connectionStringBuilder.UserID = ConfigurationManager.AppSettings["User"];
connectionStringBuilder.Password = ConfigurationManager.AppSettings["Password"];

//not you can get rigth formatted connection string
var connectionString = connectionStringBuilder.ConnectionString;

【讨论】:

    【解决方案2】:

    It's not possible。实际上你不需要这样做,这就是为什么它不可能。因为您可以像 AppSettings 一样更改 web.config 的其他部分。

    ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString =
    String.Format("Data Source={0};Initial Catalog={1};UserID={2};Password={3}",
     "server", "db", "ID", "Pass");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      • 2021-05-13
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多