今日总结
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("\n异常信息:\n{0}",ex.Message); break; } } Console.Read(); } } }