2016-02-04 33 views
0

我用ExecuteScalar单查询是这样的:我怎样才能使用执行读取器的不同变量?

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()获得每个结果集。这将导致一个来回的数据库,而不是你现在拥有的三个。