Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在wpf中交叉表单时关闭数据库连接_C#_.net_Sql_Wpf - Fatal编程技术网

C# 在wpf中交叉表单时关闭数据库连接

C# 在wpf中交叉表单时关闭数据库连接,c#,.net,sql,wpf,C#,.net,Sql,Wpf,我正在表单构造函数中使用全局变量打开数据库连接,并在表单退出按钮中关闭它。我面临的问题是,如果我跨越表单,它不会关闭数据库连接。如果跨越表单,我如何关闭连接?是否需要使用全局变量 最好仅在需要时打开数据库连接,并在使用完毕后立即关闭。不需要长时间保持连接,现在的数据库系统非常擅长管理连接 如果需要使用全局变量,可以重写onclose方法: protected override void OnClosing(System.ComponentModel.CancelEventArgs e) {

我正在表单构造函数中使用全局变量打开数据库连接,并在表单退出按钮中关闭它。我面临的问题是,如果我跨越表单,它不会关闭数据库连接。如果跨越表单,我如何关闭连接?

是否需要使用全局变量

最好仅在需要时打开数据库连接,并在使用完毕后立即关闭。不需要长时间保持连接,现在的数据库系统非常擅长管理连接

如果需要使用全局变量,可以重写
onclose
方法:

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
    // close your connection here
    base.OnClosing(e);
}

最好只检查连接状态,然后关闭它。因为如果连接已经关闭,它将给出一个异常。只需添加以下方法,它将在窗体关闭时关闭您的连接

 protected override void OnClosed(EventArgs e)
    {
        if (sqlConnection.State != System.Data.ConnectionState.Closed)
        {
            sqlConnection.Dispose();
            sqlConnection.Close();
        }
        base.OnClosed(e);
    }

要打开数据库连接,请始终使用“Using”。对于GlobalVars.conn.Open();如何使用“crossed”是什么意思?最好在连接关闭前检查连接状态,否则会出现异常