码迷,mamicode.com
首页 > 数据库 > 详细

web.config中配置数据库(多数据)连接的两种方式

时间:2014-09-03 10:53:26      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   使用   ar   文件   数据   div   cti   

这是我的第一篇文章,既然是第一篇了,那就从最基础的只是说起--web.config中配置数据库连接。

    网上有很多这方面的资料,但发现并没有一篇从头到位很清楚明了说完的,今天就把我的整理写在这里吧。

  在网站开发中,数据库操作是经常要用到的操作,ASP.NET中一般做法是在web.config中配置数据库连接代码,然后在程序中调用数据库连接代码,这样做的好处就是当数据库连接代码需要改变的时候,我们只要修改web.config中的数据库连接代码即可,而不必在修改每一个页面中的数据库连接代码。

在ASP.NET中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings 。在使用 appSettings 和 connectionStrings 配置数据库连接代码时,可分别在 <configuration> 下添加如下代码:

1. appSettings

<appSettings>
<add key="conn1" value="server=服务器名;database=数据库名;uid=用户名;password=密码;"/>
  <!--如需配置多个直接添加就好,连接时是通过key获取的-->
    <add key="conn2" value="server=服务器名;database=数据库名;uid=用户名;password=密码;"/>
</appSettings>
或者 另外建立一个配置文件,只要在webconfig中引用一下就好,示例
<appSettings configSource="App_Data\TestConfig.config"></appSettings>
如果库比较少的话直接在本页面配置就好。当连接的库比较多时,建议使用第二种,看起来更清晰不是(个人认为功能上无差别)。

2. connectionStrings

<connectionStrings>
<add name="conn1" connectionString="Dserver=服务器名;database=数据库名;uid=用户名;password=密码" providerName="System.Data.SqlClient" />这里注意一下,AppSettings连接时并不需要写命名空间
   <!--如需配置多个直接添加就好,连接时是通过name获取的-->
    <add name="conn2" connectionString="Dserver=服务器名;database=数据库名;uid=用户名;password=密码" providerName="System.Data.SqlClient" />
</connectionStrings>
当然了,既然appSettings可以引用外部,相应connectionStrings也可以,示例
<connectionStrings configSource="外部文件路径">

appSettings 和 connectionStrings 的区别:(摘自http://www.cnblogs.com/kerry1986/archive/2009/07/08/1518895.html

(1) appSettings 是在 2003 中常用的,connectionStrings 是在 2005 中常用的;

(2) 使用 connectionStrings 的好处:

第一,可将连接字符串加密,使用MS的一个加密工具即可;

第二,可直接绑定数据源控件,而不必写代码读出来再赋值给控件;

第三,可方便的更换数据库平台,如换为 Oracle 数据库,只需要修改 providerName。

(3) 写在 appSettings 中用 System.Configuration.ConfigurationManager.AppSettings["keyname"] 获取数据库连接代码值;

写在 connectionStrings 中用 System.Configuration.ConfigurationManager.ConnectionStrings["name"] 获取数据库连接代码值。

 

 据说两者通用,但是第二种是asp.net2.0的新特性,建议使用第一种。

 其实我一直有个疑问,两个字符串中的UID;PWD;和User ID; Password;是否等价。 

根据网上我查到的资料是可以互换通用的。 网上找到了个貌似更详细的解释: 连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别,只是改变了Connection对象和连接字符串中的不同参数.

 首先,连接SQL Server使用的命名空间不是"System.Data.OleDb",而是"System.Data.SqlClient". 

 其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):

"user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa". "password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".

 这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"Trusted_Connection=SSPI"来进行登录. 

 "initial catalog=Northwind":使用的数据源为"Northwind"这个数据库.他的别名为"Database",本句可以写成"Database=Northwind".  

"Server=YourSQLServer":使用名为"YourSQLServer"的服务器.他的别名为"Data Source","Address","Addr".

如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址.  

 "Connect Timeout=30":连接超时时间为30秒.

web.config中配置数据库(多数据)连接的两种方式

标签:blog   http   io   使用   ar   文件   数据   div   cti   

原文地址:http://www.cnblogs.com/Derek86/p/3952986.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!