这是我的第一篇文章,既然是第一篇了,那就从最基础的只是说起--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="server=服务器名;database=数据库名;uid=用户名;password=密码" providerName="System.Data.SqlClient" />这里注意一下,AppSettings连接时并不需要写命名空间
   <!--如需配置多个直接添加就好,连接时是通过name获取的-->
    <add name="conn2" connectionString="server=服务器名;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对象和连接字符串中的不同参数.

Access 数据库使用的命名空间是System.Data.OleDb。

2003:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XXX.mdb

2007:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=XXX.accdb;

<appSettings>
    <add key="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.12.0;Data Source=|DataDirectory|\DB_JiXiang.mdb"/>
  </appSettings>

说明:这里的|DataDirectory|是代表App_Data文件夹。测试的不能使用connectionStrings,提示Provider不适别。

首先,连接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中配置数据库(多数据)连接的两种方式的更多相关文章

  1. System.Web.Http.Cors配置跨域访问的两种方式

    System.Web.Http.Cors配置跨域访问的两种方式 使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了很多文章,我就不在详细描述了,作为小白我只说一下自己的使用心 ...

  2. web项目中实现页面跳转的两种方式

    <a href="javascript:"></a>跳转在网页本身,URL不改变 <a href="#"></a> ...

  3. asp.net 多个域名重定向,在web.Config中配置

    一个网站有多个域名,但是需要在访问其中某个域名之后跳转到另一域名. Web.config 中配置 </system.webServer> <!--重定向 域名 开始--> &l ...

  4. 在Web.config中配置handler

    在Web.config中配置handler节点时发现用vs2010和用vs2015竟然不一样,经过多次测试发现了一些倪端: <configuration> <!--vs2010中需要 ...

  5. 在Java Web程序中使用监听器可以通过以下两种方法

    之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...

  6. 在一个web 应用中,改变url无非是2种方式,一种是利用超链接进行跳转,另一种是使用浏览器的前进和回退功能

    在一个web 应用中,改变url无非是2种方式,一种是利用超链接进行跳转,另一种是使用浏览器的前进和回退功能 https://www.jianshu.com/p/27ee7df4ccc1

  7. Android跟蓝牙耳机建立连接有两种方式

    Android 跟蓝牙耳机建立连接有两种方式. 1. Android 主动跟蓝牙耳机连BluetoothSettings 中和蓝牙耳机配对上之后, BluetoothHeadsetService 会收 ...

  8. python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  9. Android中H5和Native交互的两种方式

    Android中H5和Native交互的两种方式:http://www.jianshu.com/p/bcb5d8582d92 注意事项: 1.android给h5页面注入一个对象(WZApp),这个对 ...

随机推荐

  1. Thrift全面介绍

    官网:http://thrift.apache.org   简介 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java ...

  2. 【手记】让Fiddler抓取入站请求,或者叫用Fiddler做反向代理

    注意:本文不涉及HTTPS的场景 最近在弄公众号开发,除了主动去调公众号接口,还存在公众号后台要反过来调你的情形,攻受转换一线间.对于回调的情况,想要知道对方是怎样来请求的很有必要.此前经常用Fidd ...

  3. js 图片转换为base64 (2)

    <input type="file" id="testUpload"> <img src="" id="img& ...

  4. jQuery与别的js框架冲突

    jQuery.noConflict()运行这个函数将变量$的控制权让渡给第一个实现它的那个库. 这有助于确保jQuery不会与其他库的$对象发生冲突. <script type="te ...

  5. memcached内存管理

    前言 memcached默认情况下采用了名为Slab Allocator的机制来管理内存.在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的.但是,这种方式会导致内存 ...

  6. 【epub.js|翻译|原创】开源中间件epub.js的使用及其中文文档

    epub是最流行的电子书规范之一,网络上对于Java Web有不少合适的方法来解析和呈现,但是关于epub.js的介绍比较少(尽管github上已经2K星了),更多的是概念性的内容,如: epub.j ...

  7. CORS(跨站资源共享)介绍

    起因 有同学在nginx站点配置中加了一行Access-Control-Allow-Origin *,导致微信中业务数据异常,抓包看http头有两个Access-Control-Allow-Origi ...

  8. leetcode#42 Trapping rain water的五种解法详解

    leetcode#42 Trapping rain water 这道题十分有意思,可以用很多方法做出来,每种方法的思想都值得让人细细体会. 42. Trapping Rain WaterGiven n ...

  9. chrony时间同步 服务端 客户端 安装配置

    chrony时间同步 服务端 客户端 安装配置 原创内容http://www.cnblogs.com/elvi/p/7658021.html #!/bin/sh #运行环境 centos7 #chro ...

  10. cookie大小

    一.浏览器允许每个域名所包含的cookie数: Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie. Firef ...