2016-02-04 4 views
0

Я использую ExecuteScalar для одного запроса, как это:Как я могу использовать execereader для разных переменных?

try 
{ 
    OleDbConnection Connection; 
    using (Connection = new OleDbConnection("Provider=MSDAORA.1;Data Source=DATABASE:1521/orcl;Persist Security Info=True;Password=PASSWORD;User ID=USERNAME")) 
    { 
    OleDbCommand Command1, Command2, Command3; 

    Command1 = new OleDbCommand("SELECT HOUR FROM Table1 WHERE type='CAR' and name='FERRARI'",", Connection); 
    Command2 = new OleDbCommand("SELECT HOUR FROM Table1 WHERE type='CAR' and name='FORD'", Connection); 
    Command3 = new OleDbCommand("SELECT HOUR FROM Table1 WHERE type='CAR' and name='OPEL'", Connection); 

    Connection.Open(); 
    var1 = (int)Command1.ExecuteScalar(); 
    var2 = (int)Command2.ExecuteScalar(); 
    var3 = (int)Command3.ExecuteScalar(); 
    Connection.Close(); 
} 

Это работает хорошо для меня. Но 3 (и более для других баз данных) запросов так много ждут из-за базы данных. Как я могу выбрать всю таблицу (выберите * из таблицы 1) и после выполнения команд для каждого условия? Можете ли вы показать мне пример этого в моем примере кода? Спасибо.

ответ

1

Вы можете сразу отправить несколько команд в базу данных (разделенные точкой с запятой). Вы можете получить каждый набор результатов, используя OleDb.NextResult(). Это приведет к возврату базы данных в базу данных, а не к трем, которые у вас есть сейчас.

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