2010-02-02 12 views
8

背景:
我有一个应用程序,它很好地将我的接口逻辑与处理查询的中间层逻辑分离到数据库。我做的自定义排序和缩小,所以我不使用许多SqlDataSources,而是调用了很多与SqlCommands存储过程很多。我应该使用多少个SqlConnection实例

我使用窗体身份验证创建保护子目录。在受保护目录中的web.config文件中,我有更多连接字符串链接到具有更高特权角色的用户。

问题:
我应该在我的中间层共享一个SqlConnection对象以切出重复代码,还是应该为每个操作创建一个新实例?共享SqlConnection我可以重新实例化,如果我需要更改连接字符串以访问受保护的存储过程。这里有最佳做法吗?

回答

10

不要担心共享,以节约资源。 .NET将为你管理它,默认情况下它会执行连接池。编写代码清晰易懂,并让.NET处理这些细节。

8

根据您的需要,因为不久居住地,通过使用语句来创建多达SqlConnections:

using (var connection = new SqlConnection(...)) { 
    connection.Open(); 
    ... 
} 

SQL连接从连接池,这将自动为您管理争取。

请参阅:http://msdn.microsoft.com/en-us/library/8xx3tyca(VS.80).aspx

+2

+1为答案。 “使用”语法绝对是要走的路(我认为它也可以用于文件/流访问)。 – 2010-02-02 22:47:27

+2

当然可以,对于任何一次性资源(实现IDisposable的类) – 2010-02-02 22:49:45

相关问题