-1

我在我的 asp.net 页面上有一个到数据库的连接,我在其中多次使用“使用语句”。对于使用连接的每种方法,我都使用一次。我希望将这些语句减少到只有一个,这既是出于性能原因(感觉没有必要在同一页面上重新启动连接),也是因为它使代码更易于阅读。

这个想法是一个糟糕的编码标准吗?推荐的方法是什么?
如果一个 using 语句就足够了 - 是否有一种将整个页面封装在 using 语句中的好方法(不仅在例如 Page_Load 中)?

4

3 回答 3

1

经常打开和关闭数据库连接是一种很好的做法。保持连接打开,直到您需要访问数据库,否则请尽快关闭它。

几个链接:

在 asp.net 应用程序中打开/关闭连接的好习惯?

最佳实践?打开和关闭多个连接,或 ado.net 的一个大型打开连接

使用连接池 - MSDN

于 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 回答