多个选择查询不给所有结果集

时间:2015-09-01 16:31:16

标签: sql-server vb.net

在我的代码中有一个循环,它使用SqlCommand提供SQL查询的结果。 但是,对于我需要运行的一些查询,查询中有多个select语句。例如,这可能是整个语句的样子:

Dim query as string = "
    Select * from people
    Select * from places
    Select * from items
    Select * from foods"

cmd = New SqlCommand(query, connect)
cmd.Connection.Open()
reader = cmd.ExecuteReader

While reader.HasRows()
//various logic
While reader.Read()
//Do Logic Here
End While
End While

当我的查询运行时,我得到前2个的结果,但由于第3个没有结果,它将应用程序踢出循环,我没有得到第4个选择的结果。我也需要第4次选择的结果。

编辑:Union不适用于这种情况,因为我需要能够区分逻辑中的结果集。

1 个答案:

答案 0 :(得分:1)

    static void Main(string[] args)
    {
        cmd = new SqlCommand("zp_multiple_results", connect);
        cmd.Connection.Open();

        reader = cmd.ExecuteReader();

        do
        {
            if (reader.HasRows)
                while (reader.Read())
                {
                    Console.WriteLine(reader[0].ToString());
                }
        }
        while (reader.NextResult());

        cmd.Connection.Close();
        cmd.Connection.Dispose();
        cmd.Dispose();

        Console.ReadLine();
    }