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 个(以及更多其他数据库)查询等待了这么多。如何选择所有表(从 Table1 中选择 *)并在为每个 where 条件执行命令之后?你能在我的示例代码上给我看这个例子吗?谢谢你。

4

1 回答 1

1

您可以一次向数据库发送多个命令(以分号分隔)。您可以使用OleDb.NextResult()获取每个结果集。这将导致数据库来回一次,而不是您现在拥有的三个。

于 2016-02-04T08:04:35.143 回答