今日总结

2020年11月8日:

说说连接池中几个重要的几个属性

     连接池的行为可以通过连接字符串来控制,主要包括四个重要的属性:
         1)Connection Timeout:连接请求等待超时时间。默认为15秒,单位为秒。
         2)Max Pool Size: 连接池中最大连接数。默认为100。
         3)Min Pool Size: 连接池中最小连接数。默认为0。
         4)Pooling: 是否启用连接池。ADO.NET默认是启用连接池的,因此,你需要手动设置Pooling=false来禁用连接池。

  代码如下:

SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
connStr.DataSource = @".SQLEXPRESS";
connStr.InitialCatalog = "master";
connStr.IntegratedSecurity = true;

connStr.Pooling = true; //开启连接池
connStr.MinPoolSize = 0; //设置最小连接数为0
connStr.MaxPoolSize = 50; //设置最大连接数为50             
connStr.ConnectTimeout = 10; //设置超时时间为10秒
using( SqlConnection conn = new SqlConnection(connStr.ConnectionString))
{
    ;//todo
}

     四、连接池异常与处理方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace ConnectionPool
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
            connStr.DataSource = @".SQLEXPRESS";
            connStr.InitialCatalog = "master";
            connStr.IntegratedSecurity = true;

            connStr.MaxPoolSize = 5;//设置最大连接池为5
            connStr.ConnectTimeout = 1;//设置超时时间为1秒

            SqlConnection conn = null;
            for (int i = 1; i <= 100; ++i)
            {
                conn = new SqlConnection(connStr.ConnectionString);
                try
                {
                    conn.Open();
                    Console.WriteLine("Connection{0} is linked",i);
                }
                catch(Exception ex)
                {
                    Console.WriteLine("
异常信息:
{0}",ex.Message);
                    break;
                }
            }
            Console.Read();
        }
    }
}
原文地址:https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/14122281.html