打开与关闭数据库连接是比较费时的。为此,ADO.NET自动将数据库连接存放在连接池中。连接池可以大大提高数据读取性能,因为不必等待建立全新的数据库连接,而可以直接利用连接池中现成的数据库连接。关闭连接时,并不是实际关闭连接,而是将连接标为未用,放在连接池中,以备下一次启用。如果在连接字符串中提供相同的细节(同样的数据库、用户名、口令等),则可以取得并返回池中的连接。然后可以用这个连接访问数据库。
使用SqlConnection对象时,可以在连接字符串中指定max pool size表示连接池中允许的最大连接数,默认为100,也可以指定min pool size表示连接池中允许的最小连接数,默认为0。
在连接字符串中设置代码如下:
string cstr=“server=\\audi\server;database=oa;uid=sa;pwd=sa;max pool size=10;min pool size=5;connection timeout=10”
SqlConnection con=new SqlConnection(@cstr);
上面的连接字符串中对连接池的设置表示最初在连接池中生成五个SqlConnection对象并且连接池中最多可以存储10个SqlConnection对象。如果要打开新的SqlConnection对象时,连接池中的对象全部都在使用中,则请求要等待一个SqlConnection对象关闭,然后才返回对象,供程序使用。如果请求等待时间超过ConnectionTimeout属性指定的秒数,则会抛出异常。