c# - 后台全局 SQL 连接

标签 c# .net winforms

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

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

SqlConnection conn = new SqlConnection(connectionString);

try
{
    conn.Open();
} 

....

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

另外,我如何让这个单一连接在我的程序中全局可用?

提前致谢。

最佳答案

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

How do I make this single connection available globally to my program?

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

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

即使您想执行异步打开连接之类的操作,它的目的又是什么?您的用户将拥有响应速度更快的 UI,但在建立连接之前仍然无法在应用程序中执行任何操作。

关于c# - 后台全局 SQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215083/

相关文章:

c# - 坐标时区

c# - MemoryStream 到 SecureString : Wiping the memory

C# WebClient - 从 ftp 下载文件到客户端

.net - F#中的数组协方差

c# - 如何在德里访问类的成员(用 C# 创建)

c# - winforms .Net 关于小方法的使用

.net - ToolStrip的RenderMode属性如何处理?

c# - 如何确保一次只打开一个 WPF 窗口?

c# - 如何在自定义用户控件(.Net 4、Winforms)上使用项目集合编辑器?

c# - 如何以编程方式设置软件限制策略