我应该使用多少个SqlConnection实例

时间:2010-02-02 22:42:19

标签: c# asp.net sql sql-server sqlconnection

背景:
我有一个应用程序,我很好地将我的接口逻辑与我的中间层逻辑分开,后者处理对数据库的查询。我做了很多自定义排序和缩小,所以我没有使用很多SqlDataSources,而是用SqlCommands调用了很多存储过程。

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

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

3 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:10)

尽可能多地通过using语句创建尽可能多的SqlConnections:

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

从连接池中获取SQL连接,这将自动管理您的争用。

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

答案 2 :(得分:2)

创建一个新的(并妥善处理)并使用connection pooling

相关问题