Если мы выберем большое количество строк и используем SqlDataReader, вернет ли они строки по мере их поступления или будут ли они ждать завершения операции?Строки возврата SqlDataReader
Это с C# .net
Если мы выберем большое количество строк и используем SqlDataReader, вернет ли они строки по мере их поступления или будут ли они ждать завершения операции?Строки возврата SqlDataReader
Это с C# .net
Это будет возвращать строки, как они приходят. Каждый раз, когда вы вызываете 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.
Они транслируются. Если вы просмотрите раздел «примечания», в нем говорится, что некоторые свойства можно безопасно читать только после закрытия считывателя. Если полный набор результатов был известен до начала, эти свойства были бы безопасны для чтения, пока читатель был открыт.
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx
говорит, что он будет возвращать их все сразу. – msarchet