在 C# 中从 Windows 窗体对 MySql 数据库运行查询后关闭踏板的正确方法是什么?
像这样一个简单的打开关闭就足够了吗?
conn.Open();
//querycode
conn.Close():
在 C# 中从 Windows 窗体对 MySql 数据库运行查询后关闭踏板的正确方法是什么?
像这样一个简单的打开关闭就足够了吗?
conn.Open();
//querycode
conn.Close():
尝试使用:
using(MySqlConnection conn = new MySqlConnection(connString))
{
conn.Open();
} // conn is automatically closed and disposed at the end of the using block
使用之后需要清理的资源的类通常实现IDisposable接口。这意味着它提供了一个名为 Dispose() 的函数,可用于释放资源。
对于一次性对象,可以使用using语句:
using ( SomeDisposableClass c = new SomeDisposableClass() ) {
// ... your code here
} // c.Dispose() automatically called here, freeing up resources
如果类被正确编码,它应该在其 Dispose() 函数中释放任何资源——无论是数据库连接、打开的文件句柄等。
这意味着 MySQL 可能会在 Dispose() 中与数据库断开连接,因此您可能不需要显式调用 c.Close() ——但请务必检查文档以确保。
你这样做没关系,你也可以using
像这样将连接对象包装成块:
using (var con = new MySqlConnection(/*connection string*/))
{
con.Open();
//do stuff
// con.Close(); //don't need this it will be closed automatically*
}
(*见)
不,您问题中的代码还不够好。如果您的查询引发异常,您将不会及时关闭()它,并且它将一直挂起,直到垃圾收集器注意到它。
您需要将对象封装在一个using
块中,如其他人所示,或者至少将其封装在 try/finally 结构中。