.net中的数据库连接式被自动pool的,就是说,如果你使用一个连接字符串去连接一个数据库,当使用完成后,调用close时,这个连接并不是真的被关闭了,而是被放在一个数据库连接池中,而下次再次使用同一个连接字符串时,这个连接会被自动从池中取出,而不是重新生成一个新的,因此,调用close后再new一个新的并不会耗费时间。关键问题是两次使用的必须以同一个连接字符串,微软的文档也是这样推荐的。还有,如果在对象一级声明一个数据库连接,应该在使用时打开改连接,而使用完成后立即关闭,这样会可以及时地将连接放回到缓冲池中,供其他线程使用,不然只有到对象被释放时,连接才会被自动被关闭。尤其是在web开发中,如果将连接存入了Session而没有关闭,这样当这个Session有效时,数据库连接会被一直占用
当有大量的访问时,会建立大量的数据库连接,给造成服务器的负担,系统会变得不稳定。另一方面,如果对象的构造函数中使用了系统资源,如打开了文件或数据库连接,该应该使用Dispose模式,在dispose方法中释放资源,使用对象是要把对象申明在using中(这个using是一个语句,与使用命名空间不同,可以参考.net的帮助),超出using范围是系统会自动调用对象的dispose方法,要不然就自己手动管理。这样可以比较安全的使用数据库连接。可以参考visual studio .net中的duwamish的例子。