查询包 - MySQL

时间:2010-09-06 07:32:38

标签: c# mysql executereader

有没有办法使用c#将1个查询中的查询包发送到mysql? 我的意思是我有13个选择,他们没有关系,所以不能联合他们,他们得到不同类型的数据。现在我得到了dbconn,13x select,dbclose,当它在局域网上运行时它不是问题,但是在互联网上它有时需要减慢延迟cos(13x选择和重新接收数据)。我喜欢用1个查询来表达:

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

并且阅读foreach表

1 个答案:

答案 0 :(得分: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循环,但你明白了。