Запросы на возврат другого запроса с использованием C # в пределах одного подключения MySQL - PullRequest
0 голосов
/ 21 сентября 2009

У меня есть приложение на c #, над которым я работаю, и я хочу выполнить запрос, а затем выполнить другой запрос в выходных данных ExecuteReader. Мой вопрос заключается в том, может ли это быть сделано в пределах одного соединения, или мне нужно закрывать и заново открывать соединение каждый раз, когда я хочу выполнить новый запрос?

Ответы [ 5 ]

1 голос
/ 21 сентября 2009

Вам не нужно закрывать его.

using(connection...)
{
query1;
query2;
}
1 голос
/ 21 сентября 2009

Вы можете повторно использовать соединение. Возможно, вам придется изменить CommandType, но вам не нужно закрывать и снова открывать соединение. Это добавляет ненужные накладные расходы.

0 голосов
/ 21 сентября 2009

Вы можете также рассмотреть возможность использования DataTableReader, который является отключенным считывателем, вы можете перебирать его результаты, не сохраняя другую коллекцию в памяти, требуя двойной итерации.

Ссылка MSDN для DataTableReader

0 голосов
/ 21 сентября 2009

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

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

Также подумайте, можете ли вы получить результат в одном запросе, используя соединение. Лучше выполнить один запрос, чем сотни.

0 голосов
/ 21 сентября 2009

Вы можете сделать это с помощью одного соединения.

Вам не нужно открывать, а затем закрывать, и предпочтительным способом в этом случае является сохранение соединения открытым.

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