.Net配置文件中的数据库连接字符串使用

(一)WinForm应用程序:
(1)新建配置文件App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="connstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\C#Code\DBOperation\ykjj.mdb"/>
  </appSettings>
  <connectionStrings>
    <add name="connstr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\C#Code\DBOperation\ykjj.mdb"/>
  </connectionStrings>
</configuration>
appSettings及connectionStrings这两个节点中选择一种方式即可。
如果连接SQL Server,则配置文件为:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="PhoneBookConnectionString"
      connectionString="Data Source=.\sqlexpress;Initial Catalog=PhoneBook;User ID=sa;Password=12345678"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="ConnectionString" value="server=.\sqlexpress;database=PhoneBook;uid=sa;pwd=12345678"/>
  </appSettings>
</configuration>

     以上的连接字符串中其实还有一个Persist Security Info属性,其含义是表示是否保存安全信息,其实可以简单的理解为"在数据库连接成功后是否保存密码信息",True表示保存,False表示不保存。ADO.NET缺省为False。

     如果数据库不附加到数据库服务器中,则可以把数据库文件放到网站的App_Data目录下,用AttachDBFilename指明数据库文件:

    <add name="PhoneBookConnectionString" connectionString="Data Source=.\SQLExpress;Integrated Security=True;AttachDBFilename=|DataDirectory|PhoneBook.mdf;User Instance=true" />

(2)添加引用 System.configuration,引入配置类的命名空间 using System.Configuration;
(3)使用配置管理类(ConfigurationManager)来读取连接字符串
string connstr=ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
如果配置文件中用的是appSettings,则读取代码为:
string connstr=ConfigurationManager.AppSettings["connstr"]

(二)Asp.Net应用程序
在配置文件Web.Config中添加节点:
<connectionStrings>
<add name="txl" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\TXL.mdb"/>
</connectionStrings>
或者添加节点:
  <appSettings>
    <add key="txl" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\TXL.mdb"/>
  </appSettings>
|DataDirectory|代表网站根目录下的App_Data文件夹。
读取方法同WinForm应用程序。
备注:实际项目中使用时建议在配置文件中对连接字符串进行加密,读取后再解密。

原文地址:https://www.cnblogs.com/zhouhb/p/1898096.html