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

时间:2021-09-11 03:39:42

难度: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>