Sql server 查询中的多个选择未给出所有结果集

Sql server 查询中的多个选择未给出所有结果集,sql-server,vb.net,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.Co

在我的代码中有一个循环,它使用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个选择的结果。我还需要第四次选择的结果


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

您是否尝试过在每个查询之间使用
Union ALL
?使用
读取器。在外部循环中,而不是读取器中,填充数据集并迭代表集合。根据,一个好的方法可能是在同一个连接上运行单独的查询。@BryantFrankford您不能在换行符上拆分字符串并在每个
SELECT
上循环吗?
    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();
    }