"ConfigurationSettings已过时"全面解决方案

时间:2022-08-29 12:40:14

难度:3
前期准备:对app.config, web.config文件中配置数据库连接有一定了解。

结论
VS2003:string connStr=System.Configuration.ConfigurationSettings.AppSettings["SQLCONNECTIONSTRING"];
VS2005:string connStr=System.Configuration.ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ToString();
必须添加引用system.configuration.dll

定义
ConfigurationSettings   提供运行时对读取配置节和公共配置设置的支持。
ConfigurationManager  提供对客户端应用程序配置文件的访问。无法继承此类。

ConfigurationSettings.AppSettings 属性
获取配置文件应用程序设置节的只读 NameValueCollection。 (已过时)
[ObsoleteAttribute("This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings")]

命名空间:System.Configuration
程序集:System(在 system.dll 中)

--------------------------------------------

ConfigurationManager 类

命名空间:System.Configuration
程序集:System.Configuration(在 system.configuration.dll 中)使用ConfigurationManager的话,必须添加这个引用!!

使用 ConfigurationManager 类,可以访问计算机和应用程序的配置信息。ConfigurationManager 是处理客户端应用程序配置文件的首选方法;不推荐使用任何其他方法。对于 Web 应用程序,建议使用WebConfigurationManager 类。

ConfigurationManager.AppSettings 属性
获取当前应用程序默认配置的 AppSettingsSection 数据。

ConfigurationManager.ConnectionStrings 属性
获取当前应用程序默认配置的 ConnectionStringsSection 数据。

例子

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="CustomSection"
       type="Samples.Config.CustomSection,
         ConfigurationManager,
         Version=1.0.0.0,
         Culture=neutralPublicKeyToken=null"
         allowDefinition="Everywhere"
         allowExeDefinition="MachineToApplication"
         restartOnExternalChanges="true" />
  </configSections>
  <connectionStrings>
    <add name="ConnStr1"
      connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
      providerName="System.Data.SqlClient" />
    <add name="ConnStr2"
      connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="AppSetting0"
      value="Monday, February 28, 2005 1:27:59 PM" />
    <add key="AppSetting1"
      value="Monday, February 28, 2005 1:36:40 PM" />
  </appSettings>
  <CustomSection fileName="default.txt" maxUsers="1000"
     maxIdleTime="00:10:00" />
</configuration>

在Web.Config文件中用appSetting的话
配置文件的 appSettings 节元素包含一系列名称(key)/值(value)对,可由应用程序用于任何目的。

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<appSettings>
  <add key="ConnectionString" value="" /> 
</appSettings>
<system.web>
  ...
</system.web>
</configuration>

在Web.Config文件中用connectionStrings的话

<appSettings/>
<connectionStrings>
  <!--链接Access数据库的链接字符串-->
  <add name="DBConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:EPaperOA.mdb" providerName="System.Data.OleDb" />
         <!--链接Sql2000数据库的链接字符串-->
                <add name="SqlConnectionString" connectionString="Data Source=N4;Initial Catalog=EPaperOA;Persist Security Info=True;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />
</connectionStrings>