C # MySQL соединение нескольких операторов выбора - PullRequest
2 голосов
/ 20 июня 2011

Я могу подключиться к базе данных MySQL из моего приложения WinForms. Вопрос в том, как я вошел в систему, как я могу выполнить несколько операторов выбора без повторного входа?

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

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

command.CommandText = "select id from user ";

Затем я хочу выполнить оператор выбора для другой таблицы без необходимости повторного создания соединения. Как мне это сделать? Я не могу просто сделать connection.CreateCommand.

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Пока запросы находятся в одном и том же блоке, вы можете использовать одно и то же соединение. Однако после закрытия вам необходимо повторно открыть его.

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 голосов
/ 20 июня 2011

Я вижу, вы используете DataReader.Вы можете открыть только 1 DataReader за раз для каждого соединения.using блоки пригодятся для тех:

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

Вы только намекаете на это в коде вашего вопроса (в настоящее время), но, возможно, это является частью вашей проблемы.Вы не показали, как вы используете DataReader, поэтому я не уверен.Просто возможность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...