正确使用SqlConnection 对象,兼谈数据库连接池 今晚看到上了评论头条的LoveJenny 写的为什么要关闭数据库连接,可以不关闭吗
,文章写得简单易懂非常不错,而且代码贴的很到位,下面的讨论也很激烈(老赵都跑过去留言两次了,我恨)
又查看了两遍原文中的代码,我同意评论中有几位的看法,真正造成多线程并行操作数据库时的连接问题可能是由于对SqlConnection 的不当使用
再来看一下LoveJenny 兄弟贴出的一段重要源码: view sourceprint
1 string sqlConnString = @"Data Source=
\SQLEXPRESS; 2 AttachDbFilename=""E:\DB\NORTHWND
mdf""; 3 Integrated Security=True;Connect Timeout=30;User Instance=True"; 4 SqlConnection conn = new SqlConnection(sqlConnString); 5 conn
Open(); 6 Parallel
For(1, Int32
MaxValue, (id) => 7 { 8 ExecuteCommand(conn, id); 9 }); 其中,ExecuteCommand 的具体实现如下: view sourceprint
01 private static object syncObj = new object(); 02 private static void ExecuteCommand(SqlConnection conn, int id) 03 { 04 lock (syncObj) 05 { 06 if (conn
= ConnectionState
Open) 07 { 08 c