2017-01-11 9 views
0

メインフォームでMySQL接続を開こうとしています。ただし、他の形式で接続を試してみるのに問題があります。アプリケーション全体でmysqlconnectionを使用する方法

プログラム全体で一度だけ接続を開き、同じ接続を使用してデータベースからデータを取得する必要があるように、どのように設定する必要がありますか。

また、各フォームで新しい接続を開く必要がありますか?

 using (SqlConnection connection = new SqlConnection(connectionString)) 
     { 
      //Your code goes here 
     } 

をし、App.configファイル内の接続文字列を作る:

は、次のようにSQL接続でステートメントを使用して使用することをお勧めします

答えて

1

あなただけの接続はアプリが実行されている全体の時間を開いたままにしたくありません。コードの可読性を簡素化することが目的の場合は、繰り返し呼び出すことができる単一の関数を作成する方がよいでしょう。以下の例は基本的なものですが、クエリ文字列に含まれていないストアドプロシージャやParameterオブジェクトについては、もう少し詳しく検討する必要があります。これが行うのは、データテーブルを満たすことだけです。

public DataTable RunQuery(string query) 
{ 
//connectionString should come from your configuration or a constant that is a part of this class 
    DataTable dt = new DataTable(); 
    using (SqlCommand cmd = new SqlConnection(connectionString)) 
     { 

      cmd.CommandText = query; 
      cmd.Connection.Open(); 
      using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) 
      { 
       sda.Fill(dt); 
      } 
      cmd.Connection.Close(); 
     } 
    return dt;  
} 

これは簡単です。

RunQuery("Select * from myData"); 
2

ありがとうございます。

+0

myConnection(); ?どこに置くべきですか? –

+0

接続が破棄されていることを確認するために、ステートメントを使用して必要なときに毎回接続を開きます。 –

+0

あなたの提案から、私はそれを使用する必要があるたびに接続を開いて閉じる必要がありますが、それは正しいですか?この方法でやる方が良いのですか、またはプログラムが閉じられるまで接続が一度だけ開いていますか? –

1

基本的には、MySqlConnectionを一度開いて、使用して接続を再利用するか、状態を確認する必要があります。これは、すべてのADO.NETライブラリと同じです。 usingステートメントを使用すると、オブジェクトが廃棄され、すべてのリソースが解放されることが保証されます。

このリンクを使用すると、MySQLでの作業について必要everithingました:https://www.codeproject.com/Articles/43438/Connect-C-to-MySQL

関連する問題