什么是从窗口形式在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() - 但总是检查文档,以确保

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top