C# 后台全局SQL连接
我正在尝试使用.Net 4.0创建一个小型Windows窗体应用程序 我的部分程序需要连接到数据库,但当我执行以下操作时:C# 后台全局SQL连接,c#,.net,winforms,C#,.net,Winforms,我正在尝试使用.Net 4.0创建一个小型Windows窗体应用程序 我的部分程序需要连接到数据库,但当我执行以下操作时: SqlConnection conn = new SqlConnection(connectionString); try { conn.Open(); } .... 整个程序只是挂起,直到连接完成。我想我要做的是能够在后台建立/打开这个连接。所以程序仍然会对按钮点击等做出响应 另外,如何使此单一连接在我的程序中全局可用 提前感谢。您应该解决为什么需要这么长
SqlConnection conn = new SqlConnection(connectionString);
try
{
conn.Open();
}
....
整个程序只是挂起,直到连接完成。我想我要做的是能够在后台建立/打开这个连接。所以程序仍然会对按钮点击等做出响应
另外,如何使此单一连接在我的程序中全局可用
提前感谢。您应该解决为什么需要这么长时间才能建立连接的问题。这听起来更像是要处理症状,即挂起应用程序 如何使此单一连接在我的程序中全局可用 这是个坏习惯。与数据库的连接应在尽可能短的时间内保持打开状态。在需要使用连接之前获取连接,然后在完成后立即关闭。由于您使用的是C#,因此可以利用
using
块为您管理一次性资源:
using (var conn = new SqlConnection(connectionString)) {
try {
conn.Open();
// do things here...
}
catch (Exception) {
}
}
即使您想异步打开连接,它还有什么用途?您的用户将拥有更具响应性的UI,但在建立连接之前,仍然无法在应用程序中执行任何操作。您应该解决为什么需要这么长时间才能获得连接的问题。这听起来更像是要处理症状,即挂起应用程序 如何使此单一连接在我的程序中全局可用 这是个坏习惯。与数据库的连接应在尽可能短的时间内保持打开状态。在需要使用连接之前获取连接,然后在完成后立即关闭。由于您使用的是C#,因此可以利用
using
块为您管理一次性资源:
using (var conn = new SqlConnection(connectionString)) {
try {
conn.Open();
// do things here...
}
catch (Exception) {
}
}
即使您想异步打开连接,它还有什么用途?您的用户将拥有更具响应性的UI,但在建立连接之前,仍无法在应用程序中执行任何操作。不建议您执行的操作,因为您应该尽快使用db进行操作。不建议您执行的操作,因为您应该执行尽可能快地使用db进行操作。通知用户您正在连接到数据库,可能使用其中一个无限进度条,并使用等待光标。通知用户您正在连接到数据库,可能使用其中一个无限进度条,并使用等待光标。