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

时间:2014-04-10 09:09:54

标签: c# mysql object parameter-passing

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

 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类中已建立的连接?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在类中声明一个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;

这是一个快速的例子,在项目的所有时间都打开了连接,而最好只通过类中的“打开”和“关闭”等方法打开和关闭它。

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