2014-04-10 21 views
0

也許是一個簡單的問題,但現在我很難想象這個例子中面向對象的概念。我已經在c#中的一個單獨的類中定義了我的MySqlConnection(單獨的/.cs/文件)。在一個類中定義了MySqlConnection,並在另一個類中使用它來與DB一起工作

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

你可以在你的類聲明的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 myConnection = MySQLConnect.Connection; 

這是一個簡單的例子,從具有連接遭受訪問您的SqlConnection在舊項目在你的項目的所有時間都會開放,而只能通過類中的「打開」和「關閉」等方法打開和關閉它纔會更好。

所以我建議創建一個MyConnect類Singleton並使用一個非靜態的SqlConnection對象,這樣你就可以做得更好。

相關問題