我在我的 asp.net 页面上有一个到数据库的连接,我在其中多次使用“使用语句”。对于使用连接的每种方法,我都使用一次。我希望将这些语句减少到只有一个,这既是出于性能原因(感觉没有必要在同一页面上重新启动连接),也是因为它使代码更易于阅读。
这个想法是一个糟糕的编码标准吗?推荐的方法是什么?
如果一个 using 语句就足够了 - 是否有一种将整个页面封装在 using 语句中的好方法(不仅在例如 Page_Load 中)?
问问题
110 次
3 回答
1
于 2013-06-17T13:02:29.453 回答
0
您当前的方法被认为是最佳实践。您应该始终using
对实现尽快IDisposable
处置(+关闭)所有非托管资源的对象使用 - 语句。方法是语句的一个很好的范围。using
请注意,如果您使用Connection-Pooling
(默认),您将不会在调用Open
或时打开/关闭连接Close
。相反,如果您关闭它,则将连接标记为可用。所以如果你不关闭连接,连接池就不会重用这个连接。相反,它必须打开一个非常昂贵的新物理连接。一旦达到最大连接数(默认为 100),您甚至会遇到异常。
实际上,大多数应用程序仅使用一种或几种不同的连接配置。这意味着在应用程序执行期间,许多相同的连接将被重复打开和关闭。为了最大限度地降低打开连接的成本,ADO.NET 使用了一种称为连接池的优化技术。
连接池减少了必须打开新连接的次数。pooler 维护物理连接的所有权。它通过为每个给定的连接配置保持一组活动连接来管理连接。每当用户在连接上调用 Open 时,池化程序都会在池中查找可用的连接。如果池连接可用,则将其返回给调用者,而不是打开新连接。当应用程序对连接调用 Close 时,池化程序将其返回到池中的活动连接集,而不是关闭它。一旦连接返回到池中,它就可以在下一次 Open 调用中被重用。
于 2013-06-17T12:53:12.187 回答
-1
例如
public static void GetConnObj()
{
using (SqlConnection con = new SqlConnection("yourConnectionString"))
{
con.Open();
//other code here.
}
}
于 2013-06-17T12:53:59.790 回答