NET学习——配置文件中的数据库字符串

本文详细介绍了在不同类型的项目中(WinForm、Asp.Net)配置数据库连接字符串的方法,包括SQL Server、MySQL、Access和Oracle等数据库的配置示例,以及在本地和远程数据库中的应用。
摘要由CSDN通过智能技术生成

1.不同类型项目

1.1 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"]

1.2 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应用程序。
备注:实际项目中使用时建议在配置文件中对连接字符串进行加密,读取后再解密

2. 数据库位置分类

2.1 本地数据库

在ASP.NET开发的网站根目录,有一个名为web.config的文件,顾名思义,这是为整个网站进行配置的文件,其格式为XML格式。

这里主要谈谈文件中的<connectionStrings>节。 <connectionStrings>节是对连接到数据库的字符串进行配置,由于MS SQL Server与ASP.NET同属于微软的产品,因此是使用ASP.NET开发时首选的数据库是MS SQL Server,本文只讨论对MS SQL Server的连接字符串情况。

第一种情况,本地开发时,使用本地数据库,如下面的代码
 

<connectionStrings>
    <add name="myConn" connectionString="Data Source=LocalDB)\v11.0;AttachDbFilename=|DataDirectory| \Movies.mdf;Integrated Security=True" providerName ="System.Data.SqlClient" />
</connectionStrings>

 这是使用PC进行本地开发最常用的数据库连接字符串使用方式。其中,

name属性指的是连接字符串名称,网站中需要使用数据库时,都需要引用这个连接字符串名称;本例中为myConn;

Data Source属性是数据库服务器,(LocalDB)\V11.0说明使用本地数据库服务器,版本号为11,即SQL Server 2012;

AttachDbFilename属性是指定具体数据为名称及位置,|DataDirectory| 对应ASP.NET网站中的系统目录App_Data,本属性值说明连接到本目录中的名为Movies.mdf数据库,其中,mdf文件名说明该数据库需要SQL Server服务器的服务,但它本身是一个独立的数据库文件,可以进行复制粘贴而不需要在SQL Server管理系统(如SSMS)进行数据库分离工作;

Integrated Security=True" 说明是集成验证,是Windows验证的方式,只要有这个属性及属性值,连接字符串中就不需要用户名及密码;

providerName ="System.Data.SqlClient"为数据提供程序

这种情况是本地开发最常用的情况:可以直接使用ASP.NET创建数据库(扩展名即为.mdf),也可以使用ASP.NET网站配置生成ASPNETDB.MDF数据库,当数据库创建完成后,在ASP.NET界面中创建连接字符串,只需要提供连接字符串的名称,连接字符串的其它属性及属性值可以自动在web.config文件中生成。

2.2 远程数据库

<connectionStrings>
    <add name="myConn" connectionString="Data Source=服务器名;Initial Catalog=数据库名;uid=用户Id;pwd=用户密码;"/>
</connectionStrings>

 使用自己本电脑的服务器

 <connectionStrings>
     <add name="SchoolCnnString" connectionString="Data Source=.;Initial Catalog=数据库名;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

说明:当需要把本地开发完成的ASP.NET网站部署到远程空间(比如租用空间、比如自己的服务器),开始实际提供网站访问服务时,则使用这种连接字符串。如果是租用空间,空间提供商会提供服务器名称,数据库名称,用户名及口令。注意这里没有了Integrated Security=true"属性名及属性值,所以需要用户名与密码。

因此,当在使用连接字符串进行本地开发(往往是本文中第一种方式)完成并测试成功后,需要根据远程服务器的数据,对连接字符串进行修改再上传至远程服务器,才能提供真正的Internet访问。 

3. 数据库类型分类

3.1 SQLServer

3.1.1

<?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>

3.1.2 如果数据库放在App_Data文件下

配置文件连接数据库字符串为:

<?xml version="1.0" encoding="utf-8"?>
<!--  有关如何配置 ASP.NET 应用程序的详细消息,请访问http://go.microsoft.com/fwlink/?LinkId=169433  -->
<configuration>
  <connectionStrings>
    <add  name="CeShiConn"  connectionString=" Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Psychology.mdf; Integrated Security=True;User Instance=True;"  />
  </connectionStrings>
  <appSettings>
    <add key="CeShiConn2" value="server=.\sqlexpress; AttachDbFilename=|DataDirectory|Psychology.mdf;   Integrated Security=True;User Instance=True; Connection Timeout=30;"/>
  </appSettings>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
</configuration>

注释:DataSource代表所要链接Server网络中的物理地址.

.\sqlexpress 表示链接本地的Sql Express数据库文件

Integrated Security当此属性设为True时表示链接采用Window身份验证.

User Instance=True;这个属性表示采用Windows身份验证的情形下,在连接的过程中,会建立一个新的SqlServer数据副,提供用户完整的数据访问权限。

3.2 MySQL

在Web.config文件中加入

<configuration>
    <!--其他配置-->
    <connectionStrings>
        <add name="mysqlConnectStr" connectionString="Database=vstest;Data Source=127.0.0.1;User Id=root;Password=123456;pooling=false;CharSet=utf8;port=3306" />
    </connectionStrings>
    <!--其他配置-->
</configuration>

在需要使用的项目中右键引用–添加引用
引入System.Configuration
接着在代码中 using System.Configuration;
最后获取字符串

string connectStr = ConfigurationManager.ConnectionStrings["mysqlConnectStr"].ConnectionString;

3.3 Access

如果是Access数据库有以下几种种写法:

3.3.1 如果是连接Access数据库

<?xml version="1.0"  encoding="utf8"  ?>
<configuration>
 <appSettings>
  <add key="connstr" value="Provider=Microsoft.Jet.OLEDB.4.0;DataSounce=F:\C#Code\DBOperation/ykjj.mdb"/>
  <connectionStrings>
    <add name="connstr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\C#Code\DBOperation\ykjj.mdb"/>
  </connectionStrings>
 </appSettings>
</configuration>

3.3.2 数据库可以放到网站的App_Data目录下

在配置文件Web.Config中添加节点

<connnectionStrings>
 <add name="txl" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSounce=|DataDirectory|\TXL.mdb"/>
</connectionStrings>
<appSettings>
  <add key="txl" value="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\TXL.mdb"/ Persist Security Info=True"  providerName="System.Data.OleDb" />
</appSettings>

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

使用配置管理类来读取连接字符串:

string connstr=ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

如果配置文件中用的是appSettings

string connstr=ConfigurationManager.AppSettings["connstr"];

3.3.3 如果连接的是Access2007数据库

则配置字符串链接如下:

<connnectionStrings>
<add name="txl" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\weimakeji.mdb"   Persist Security Info=True" >
</connectionStrings>

AppSetting用法相同 

3.4 Oracle

在NET环境中链接Oracle数据库有两种组建链接方式:

1)使用OleDB组件是通过Oracle OleDB驱动程序(OraOLEDB.dll)连接和访问Oracle数据库
2)使用System.Data.OracleClient.dll组件(ADO.Net组件)

OleDbConnection模式:
<add key="ConnectionString" value="Provider=OraOLEDB.Oracle.1;Data Source=orcl;User ID=sysman;Password=sa;Unicode=True"/>
 

OracleConnection  模式:
<add key="orclConnStr" value="Data Source=orcl;User ID=exp;Password=sql;"/>

参考出处:http://www.cnblogs.com/lingxzg/archive/2008/06/04/1213346.html

===================================================================

asp.net与oracle连接字符串

  connectionString="Password=czh;User ID=czh;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.168.211)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=skydream)));"

  HOST:服务器IP或者服务器名称

  SERVICE_NAME:oracle数据名称

  User ID:oracle 用户名

  Password:oracle用户密码

  如果oracle数据库和web在同一台服务器上 可以写成

  connectionString="Password=czh;User ID=czh;Data Source=skydream;"

  你也可以在C:\oracle\ora92\network\admin\tnsnames.ora(oracle安装目录下面) 查看配置文件

参考出处:http://www.cnblogs.com/chinafine/articles/1835992.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值