后台的全局SQL连接

时间:2011-08-27 14:15:09

标签: c# .net winforms

我正在尝试使用.Net 4.0创建一个小型Windows窗体应用程序

我的程序的一部分需要连接到数据库,但是当我执行以下操作时:

SqlConnection conn = new SqlConnection(connectionString);

try
{
    conn.Open();
} 

....

整个程序只是挂起,直到建立连接。我想做的是,我想,能够在后台创建/打开这个连接。所以程序仍然会响应按钮点击等。

另外,如何在程序中全局使用此单一连接?

提前致谢。

2 个答案:

答案 0 :(得分:5)

您应该解决为什么连接需要这么长时间的问题。这听起来更像是你想要处理症状,它会挂起你的应用程序。

  

如何在程序中全局使用此单一连接?

这是不好的做法。应尽可能保持与最短持续时间的数据库连接。在您需要使用它之前获取连接,然后在完成后立即关闭它。由于您使用的是C#,因此可以利用管理可用资源的using块:

using (var conn = new SqlConnection(connectionString)) {
    try {
        conn.Open();
        // do things here...
    }
    catch (Exception) {
    }
}

即使你想做一些像异步打开连接的事情,它会服务于什么目的?您的用户将具有响应更快的UI,但在建立连接之前仍无法在应用程序中执行任何操作。

答案 1 :(得分:-1)

不建议您执行此操作,因为您应尽快使用db进行操作。