2010-09-06 1 views
1

Есть ли способ отправить пакет запросов в 1 запрос в mysql с помощью C#? Я имею в виду, что я получил 13 выборок, они не связаны, поэтому не могу их объединить, они получают разные типы данных. Теперь у меня есть dbconn, 13x select, dbclose, это не проблема, когда он работает над lan, но по интернету иногда требуется замедление задержки (13x выбор и получение данных). Id хотел бы сделать это с 1 запросом вроде:пакет запросов - MySQL

выбрать xxx из xxx; выберите zzz из zzz; выбрать yyy из yyy;

и не читать Еогеасп таблицу

ответ

2

Вы можете отправить несколько операторов и получить несколько наборов результатов с помощью MySqlDataReader. Вы можете сделать что-то вроде этого:

var cmd = new MySqlCommand("...lot of SQL selects..."); 
using (var reader = cmd.ExecuteReader()) 
{ 
    // Go to a 'next result' each time. 
    while (reader.NextResult()) 
    { 
     while (reader.Read()) 
     { 
      // Read data from result set. 
     } 
    } 
} 

Хитрость заключается в том, чтобы использовать MySqlDataReader.NextResult, чтобы перейти к следующему результату набора каждый раз. Конечно, в вашей ситуации вы знаете, сколько наборов результатов вы можете ожидать, поэтому вы не должны использовать цикл while, но вы получите эту идею.

+0

это именно то, что мне нужно;) спасибо – Cfaniak

Смежные вопросы