2016-03-22 11 views
0

Ich habe ein SQL-Skript mit einer Schleife. In jeder Iteration ändere ich die WHERE-Klausel. So bekomme ich mehrere Auswahlmöglichkeiten angezeigt. Aber mein .net Programm liest nur die erste Auswahl. Das SQL-Skript funktioniert in SSM.SqlDataReader ganze Abfrage lesen

Das ist mein SQL-Skript

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

Das ist mein vb.net Code

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 
+0

Lesen Sie über die Verwendung einer gemeinsamen Tabelle Ausdruck –

+4

Das liegt daran, dass nachfolgende Auswahl tatsächlich in einer anderen Ergebnismenge sind. Ihr Leser muss nach jedem Lesevorgang ein .NextResult ausführen. – UnhandledExcepSean

+0

Warum die rbar? Was ist los mit einem einzelnen SELECT- und BETWEEN-Operator? – mxix

Antwort

2

Das ist, weil nachfolgende wählt tatsächlich in einem anderen Ergebnismenge sind. Ihr Leser muss nach jedem Lesevorgang ein .NextResult ausführen.