在一个类中定义MySqlConnection,并在另一个类使用它来处理DB

本文关键字:另一个 DB 处理 MySqlConnection 一个 定义 | 更新日期: 2023-09-27 17:57:40

也许是个简单的问题,但现在我很难想象这个例子中的面向对象概念。我已经在c#中的一个单独的类中定义了MySqlConnection(单独的/.cs/文件)。

 class MySQLConnect
{

    public bool ConnectToMySQL()
    {

        string cs = @"server=127.0.0.1; user id=root; password=''; database=cluster";
        MySqlConnection conn = null;
        try
        {
            conn = new MySqlConnection(cs);
            conn.Open();
            MessageBox.Show("Pripojené k DB : {0}", conn.ServerVersion);
        }
        catch (MySqlException ex)
        {
            MessageBox.Show("Error: {0}", ex.ToString());
        }
        return true;
    }
}

在表单类中,我定义了这样的连接对象:

 MySQLConnect con = new MySQLConnect();

现在,我在表单类中单击按钮调用ConnectToMySQL方法

private void button1_Click(object sender, EventArgs e)
    {
        con.ConnectToMySQL();
    }

比方说,我希望有另一个单独的类,它将有一个执行一些sql查询的方法。单击按钮时也会调用此方法。我应该如何在我的新类中使用从MySQLConnect类建立的连接?

谢谢。

在一个类中定义MySqlConnection,并在另一个类使用它来处理DB

您可以像一样在类中声明SqlConnection字段

    static class MySQLConnect
    {
            private static SqlConnection _Connection;
            public static SqlConnection Connection
            {
                    get
                    {
                            if(_Connection == null)
                            {
                                    string cs = @"server=127.0.0.1; user id=root; password=''; database=cluster";
                                    _Connection = new MySqlConnection(cs);
                            }
                            if(_Connection.State == ConnectionState.Closed)
                                    try
                                    {
                                                conn.Open();
                                    }
                                    catch(Exception ex)
                                    {
                                            //handle your exception here
                                    }
                            return _Connection;
                    }
            }
    }

然后,您可以使用访问旧项目中的SqlConnection

    SqlConnection myConnection = MySQLConnect.Connection;

这是一个快速的例子,在项目的所有时间里都会打开连接,而最好只通过类中的"open"answers"close"等方法打开和关闭连接。

所以我建议创建一个MyConnect类Singleton,并使用一个非静态的SqlConnection对象,这样你就能做得更好。