c# - 使用 IDisposable C# 连接 MySQL

标签 c# asp.net mysql

我正在使用 ASP.net 开发 MySQL Web 应用程序,我听说应该对 mysql 连接使用 using 指令,以确保在出现问题时连接始终关闭,因为他们不能保证数据库将如果发生捕获(取决于异常),则从finally语句内部关闭。

我正在尝试创建一个打开 MySQL 连接的类,这样我就不必每次需要访问数据库时都重复相同的代码。

我看到它是这样的

using (call class to open connection)
{
     MySQL Stuff Here
}

我已经看到被调用来打开连接的类需要是 IDISOSABLE 类,但我不确定如何实现它。 但是,我找不到任何有关如何做到这一点的信息。感谢您的帮助。

最佳答案

实现 IDisposable 接口(interface)的典型方法是遵循文档中示例中列出的模式:http://msdn.microsoft.com/en-us/library/system.idisposable.aspx

基本上,你的类应该/看起来像这样:

public sealed class YourClass : IDisposable
{
    private MySqlConnection _Connection;
    private bool _IsDisposed;

    public YourClass()
    {
        _Connection = new MySqlConnection();
    }

    public void Dispose()
    {
        if (!_IsDisposed)
        {
            _Connection.Dispose(); // or Close
            _IsDisposed = false;
        }
    }
}

这种模式有很多变体,具体取决于您是否打算让其他人从您的类继承,以及您是否有任何需要关闭的非托管资源(如文件句柄),但对于正常使用,以上就足够了.

关于c# - 使用 IDisposable C# 连接 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5682223/

相关文章:

c# - 从开放的 HTTP 流中读取数据

c# - 检查数字是否可以被 24 整除

asp.net - 应用程序_启动 ASP.NET

mysql - ubuntu 上 mysql 转储中的未知数据库

javascript - Bcrypt.compareSync 总是返回 false

PHP 数据库过滤器

c# - 在模块窗口中,我可以看到加载的 dll 以相同的路径出现两次

c# - 如何在 C# 中使用 DebugBreak()?

asp.net - 防止将 aspnet_client 文件夹添加到 .NET 站点

c# - 如何在 ASP.Net Identity 中设置连接字符串