SqlDataReader 读取整个查询

SqlDataReader read whole query

我有一个带循环的 SQL 脚本。在每次迭代中,我都会更改 where 子句。所以我显示了几个 select。但是我的 .net 程序只读取第一个 select。 SQL 脚本在 ssms 中有效。

这是我的SQL脚本

while (@aktuellParam <= @countParam)
Begin
  SELECT name1,
         name2
  FROM dbo.tableName
  WHERE name like @var
  SET @aktuellParam = aktuellParam+1
END

这是我的vb.net代码

Using reader As SqlClient.SqlDataReader = _server.ConnectionContext.ExecuteReader(script)
    Dim lfdnr As Integer = 1

    Do While reader.Read()
        spaltenListe.Add(New ISpalten With
                                 {
                                     .Name1= reader.GetString(reader.GetOrdinal("name1")),
                                     .Name2= reader.GetString(reader.GetOrdinal("name2"))
                                 })
        lfdnr = lfdnr + 1
    Loop
    reader.Close()
End Using

那是因为后续的选择实际上是在不同的结果集中。您的 reader 需要在每次读取后执行 .NextResult。