我在表单构造函数中使用全局变量打开数据库连接,然后在表单“退出”按钮中关闭它。我面临的问题是,如果我越过表单,它不会关闭数据库连接。如果表单是,我可以关闭连接交叉?
答案 0 :(得分:0)
您需要使用全局变量吗?
最好只在需要时打开数据库连接,并在完成后立即关闭它们。没有必要保持连接的时间更长,数据库系统现在非常擅长管理连接。
如果您需要使用全局变量,可以覆盖OnClosing
方法:
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
// close your connection here
base.OnClosing(e);
}
答案 1 :(得分:0)
最好只检查连接状态,然后关闭it.becoz如果连接已经关闭,它将给出异常。添加以下方法,它将在表单关闭时关闭连接。
protected override void OnClosed(EventArgs e)
{
if (sqlConnection.State != System.Data.ConnectionState.Closed)
{
sqlConnection.Dispose();
sqlConnection.Close();
}
base.OnClosed(e);
}