关闭线程针对C#MySQL数据库
-
20-09-2019 - |
题
什么是从窗口形式在C#运行针对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
其他提示
它是好的你正在做的方式,也可以包裹连接物体插入这样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 /最终结构。
使用,你需要事后清理资源通常实施的的IDisposable 的接口的类。这意味着,它提供了一个名为的Dispose()函数可用于释放资源。
对于一次性的对象,你可以使用的使用的语句:
using ( SomeDisposableClass c = new SomeDisposableClass() ) {
// ... your code here
} // c.Dispose() automatically called here, freeing up resources
如果该类被正确编码,应该释放任何资源 - 无论是一个数据库连接,打开文件句柄等 - 在其处置()函数。
这意味着MySQL的可能是由在Dispose()方法的数据库断开连接,所以你可能并不需要显式调用c.Close() - 但总是检查文档,以确保
不隶属于 StackOverflow