(1) 数据库的连接使用后,必须采用close()连接等效的方法关闭连接。只有关闭后,连接才能进入连接池。

参见微软的使用连接池说明:https://msdn.microsoft.com/zh-cn/library/8xx3tyca(v=vs.80).aspx

“警告:

我们建议您在使用完连接时一定要关闭连接,以便连接可以返回池。要关闭连接,可以使用 Connection 对象的 Close 或 Dispose 方法,也可以通过在 C# 的 using 语句中或在 Visual Basic 的 Using 语句中打开所有连接。不是显式关闭的连接可能不会添加或返回到池中。例如,如果连接已超出范围但没有显式关闭,则仅当达到最大池大小而该连接仍然有效时,该连接才会返回到连接池中。有关更多信息,请参见 Visual Basic 的using 语句(C# 参考)如何:释放系统资源。”

A.方法1(C#):

using (SqlConnection connection = new SqlConnection()) {

connection.ConnectionString = connectionString;

connection.Open();

//读写操作............................

//此处不用显示关闭连接,因为using语法会关闭连接

}
   B.方法2(C#):
      SqlConnection connection = new SqlConnection();

      connection.ConnectionString = connectionString;
       connection.Open();
     ............................
       connection.Close();
   C.方法3(C#利用读数据时):

SqlConnection connection = new SqlConnection(ConnectionString);

string _sql = "Select * from [Data] where ......;

SqlCommand _cmd = new SqlCommand(_sql, connection);
     connection.Open();
    SqlDataReader _reader = _cmd.ExecuteReader(CommandBehavior.CloseConnection);//此处读取完成后关闭读取时关闭对应连接

     ............................
       _reader.Close();//此处必须显示关闭读取,这样才能配合CommandBehavior.CloseConnection关闭对应的连接
(2)与数据库尝试连接的时间与数据库连接通信超时时间Connection Timeout,默认15S。
(3)控制连接是否进入连接池
        SqlConnection.ConnectionString 属性详细见https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.80).aspx 
是否使能池程序在创建线程的当前事务上下文中自动登记连接 Enlist,是否从连接池取连接或创建新连接后存入合适的连接池Pooling,连接池最大最小值Max Pool Size,Min Pool Size
           例如:  ConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;" + "Integrated Security=SSPI;";
          关闭连接池  "Enlist=false;"    "Pooling=false;",即为:
          ConnectionString=ConnectionString+"Enlist=false;"+"Pooling=false;"
(3) 连接进入连接池后,以下关键字在数据库连接时才起作用
      SqlConnection.ConnectionString 属性Connection Lifetime,设置连接池中的连接在连接池中的存储并销毁时间
(4)如果不想让连接进入连接池(即可能存在连接池打开的情况,不通过"Pooling=false;"设置),可采用在程序中对使用的连接采用如下方法让连接使用完成后不会进入连接池
      SqlConnection.ClearPool(connection);
     此方法可以解决数据库连接中sleeping进程过多的问题。
      参见:https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection.clearpool(v=vs.80).aspx
 

C#中SQL Server数据库连接池使用及连接字符串部分关键字使用说明的更多相关文章

  1. ADO.NET中SQL Server数据库连接池

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...

  2. .NET中SQL Server数据库连接方法

    1. 使用本机上的SQL Server Express 实例上的用户实例.       用户实例的连接创建了一个新的SQL Server 实例.此连接只能是在本地SQL Server 2005实例上并 ...

  3. 配置Windows 2008 R2 防火墙允许远程访问SQL Server 2008 R2 更改端口 连接字符串 IP+逗号+端口号

      1.先修改 sql server 2008R2的端口号吧,1433经常成为别人入侵的端口,在sql server 配置管理器 -->sql server 网络配置-->MSSQLSER ...

  4. MS SQL Server 数据库连接字符串详解

    MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...

  5. SQL server 数据库连接方式分析

    SQL server 数据库连接方式图示: ODBC和OLEDB连接的区别 ODBC(开放数据库互连):是Microsoft引进的一种早期数据库接口技术.它实际上是ADO的前身.早期的数据库连接是非常 ...

  6. SQL Server数据库连接,Web.config的正确配置 [转]

    http://database.51cto.com/art/201007/213289.htm 此文章主要介绍的是Web.config正确配置SQL Server数据库连接的实际擦步骤,在图5-6中, ...

  7. win7中 SQL server 2005无法连接到服务器,错误码:18456

    win7中 SQL server 2005无法连接到服务器,错误码:18456.. 数据库刚装完.我用Windows登陆  结果登陆不上去.. 选中SQL Server Management Stud ...

  8. sql server 2008启动时:已成功与服务器建立连接,但是在登录过程中发生错误。(provider:命名管道提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233) 然后再连接:错误:18456

    问题:sql server 2008启动时:已成功与服务器建立连接,但是在登录过程中发生错误.(provider:命名管道提供程序,error:0-管道的另一端上无任何进程.)(Microsoft S ...

  9. 如何获取SQL Server数据库连接字符串的某些部分

    有的时候需要获取SQL Server数据库连接字符串的某些部分.用正则表达式可能有点麻烦. 其实有一个比较简单的方法--使用SqlConnectionStringBuilder. var builde ...

随机推荐

  1. 邮箱验证 各种邮箱的smtp

    常见邮箱的SMTP设置 QQ 邮箱举例:(地址test@qq.com)(账号test)(密码***)(SMTP服务smtp.qq.com)(端口25)(注意:请手动开通SMTP功能,通过网页登录qq邮 ...

  2. new和alloc的区别

    简单来说,new和alloc在功能上基本没有什么区别,都是分配内存,初始化对象. 但是,调用new的话,只能通过默认的init方法来初始化对象,而alloc可以通过其他的初始化方法如:-(instan ...

  3. Android Dex文件格式(二)

    第三块: 数据区         索引区中的最终数据偏移以及文件头中描述的map_off偏移都指向数据区, 还包括了即将要解析的class_def_item, 这个结构非常重要,下面就开始解析   c ...

  4. 书单.md

    0823 John Hoskin, An Ilustrated History of Thailand.Asia Books Co., Ltd.2015 0729 Gerald Graff, Cath ...

  5. Matrix Calculator

    表达式分析+矩阵+计算器+寄存器=矩阵计算器 怎么想起来搞这个呢.. //刚看龙书兴致勃勃要搞表达式分析 这个寄存器比较简陋,26字母+4缓存,//字母不分大小写 当然,不只能算矩阵,还能算数= = ...

  6. app 要求字体使用楷体,使用字体包

    1,下载字体包     http://www.3987.com/xiazai/6/fonts/36616.html#down 2.  studio中src\main\创建assets\fonts,存放 ...

  7. iOS 9/10强制使用https访问网络,使用了第三方SDK的应用需要配置的信息

    2017年01月01日起苹果将全面禁止使用http来访问网络. 网上扒了一些资源,解决方法还是有的,但是都不确定是否可以通过审核,毕竟实践才是检验真理的唯一标准. 后续如果上线成功,再来分享. 如果应 ...

  8. 逐个访问URL的每个查询字符串参数

    下面介绍一个函数,用于处理location.search的结果,以解析查询字符串,然后返回包含所有参数的一个对象. 比如  www.baidu.com?q=javascript&num=10 ...

  9. 一份不错的vue.js基础笔记!!!!

    第一章 Vue.js是什么? Vue(法语)同view(英语) Vue.js是一套构建用户界面(view)的MVVM框架.Vue.js的核心库只关注视图层,并且非常容易学习,非常容易与其他库或已有的项 ...

  10. Lucene教程(转)

    Lucene教程 1 lucene简介1.1 什么是lucene    Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...