1

有没有办法使用 c# 将 1 个查询中的查询包发送到 mysql ?我的意思是我有 13 个选择,它们不相关,所以不能合并它们,它们得到不同类型的数据。现在我得到了 dbconn、13x 选择、dbclose,当它在 lan 上工作时它不是问题,但在互联网上有时需要减慢延迟的 cos(13x 选择和接收数据)。我想用 1 个查询来完成,比如:

从 xxx 中选择 xxx;从 zzz 中选择 zzz;从yyy中选择yyy;

而不是阅读 foreach 表

4

1 回答 1

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循环,但您明白了。

于 2010-09-06T07:44:25.880 回答