2010-07-28 3 views
0

Если мы выберем большое количество строк и используем SqlDataReader, вернет ли они строки по мере их поступления или будут ли они ждать завершения операции?Строки возврата SqlDataReader

Это с C# .net

ответ

1

Это будет возвращать строки, как они приходят. Каждый раз, когда вы вызываете SqlDataReader.Read();, следующая строка извлекается из сетевого буфера клиента. Только одна строка хранится в памяти на каждом 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 
} 

Дополнительная информация here.

+0

говорит, что он будет возвращать их все сразу. – msarchet

0

Они транслируются. Если вы просмотрите раздел «примечания», в нем говорится, что некоторые свойства можно безопасно читать только после закрытия считывателя. Если полный набор результатов был известен до начала, эти свойства были бы безопасны для чтения, пока читатель был открыт.

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

Смежные вопросы