2010-07-28 6 views
0

Si nous sélectionnons un grand nombre de lignes et que nous utilisons un SqlDataReader, retournera-t-il les lignes telles qu'elles sont ou attendra-t-elle que l'opération soit terminée?SqlDataReader renvoie les lignes

est avec C# .net

Répondre

1

Il retournera les lignes comme ils viennent. Chaque fois que vous appelez SqlDataReader.Read();, la ligne suivante est extraite du tampon réseau du client. Une seule ligne est gardée en mémoire sur chaque Read().

// Starts getting the data from the query 
IDataReader reader = cmd.ExecuteReader(behavior); 

// Calling .Read() will get the next result from the client network buffer 
while (reader.Read()) 
{ 
    // Do something with the row data 
} 

Plus d'informations here.

+0

indique qu'il les retournera tous en même temps. – msarchet

0

Ils sont diffusés. Si vous passez en revue la section "remarques", il indique que certaines propriétés ne peuvent être lues en toute sécurité qu'une fois le lecteur fermé. Si le jeu de résultats complet était connu avant le démarrage, ces propriétés seraient sûres à lire pendant que le lecteur était ouvert.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx