2011-06-20 14 views
2

私のWinFormsアプリケーションからMySQLデータベースに接続できます。問題は、いったんログインした後で、再度ログインせずに複数のselectステートメントを実行する方法です。C#MySQL接続複数選択ステートメント

MySqlConnection connection = new MySqlConnection(MyConString); 
connection.Open(); 

MySqlCommand command = connection.CreateCommand(); 
MySqlDataReader Reader; 

command.CommandText = "select id from user "; 

次に、もう一度接続を作成せずに別のテーブルのselect文を実行したいとします。 どのように私はdothisですか? 私はちょうどconnection.CreateCommandをやっているようではありません。

+1

完全なコードを表示してください – technology

+0

もう1つの別のクエリで同じ接続オブジェクトを使用することができます – Rahul

+1

あなたに役立つ完全なコードを表示してください。 – avirk

答えて

2

クエリが同じブロック内にある限り、同じ接続を使用できます。ただし、一度閉じた後は、再度開く必要があります。

using(YourConnectionObject) 
{ 
    ... open connection ... 
    ... create your sql querying object... and command 
    SQLCommand.Connection = YourConnectionObject; 

    Execute your Query 

    SQLCommand.CommandText = "a new sql-select statement"; 

    Execute your NEW query while connection still open/active 

    SQLCommand.CommandText = "a third sql-select statement"; 

    Execute your THIRD query while connection still open/active 

    ... close your connection 
} 

しかし、あなたのアプリケーションでは、アプリケーション・レベルで、または必要なログイン/接続設定のものとフォームレベルでのように、単一の「接続」オブジェクトを持つことができます。次に、各フォームの内部で、あなたは必要に応じて

Open 
Run Query 
Run Query 
Run Query 
Close 

とすることができます。

0

DataReaderを使用しています。接続ごとに一度に開くことができるのは1つだけです(DataReader)。ユーザーは、(現在は)あなたの質問のコードでそれを示唆

using(var reader = myCommand.ExecuteReader()) { 
    while (reader.Read()) { 
     // get values, do stuff 
    } 
}// reader gets closed 

が、それはあなたの問題の一部である可能性があります:usingブロックは、それらのために便利になります。 DataReaderの使い方がわからないので、わかりません。ただの可能性。

関連する問題