Я новичок в ADO.net. Мне нужно получить из БД набор строк, затем повторить один за другим и отправить их, условно, некоторым объектам, которые могут UPDATE
или DELETE
получить строку из БД. Из документации SqlDataReader
я не совсем понял, как это работает (Читает ли он из БД все строки или только некоторые из них или по очереди?) Из MSDN:
Результаты возвращаются по мере выполнения запроса и сохраняются в сетевом буфере на клиенте до тех пор, пока вы не запросите их с помощью метода Read объекта DataReader.
- Когда именно возвращается результат? Во время
command.ExecuteReader()
или во времяreader.Read()
? И каково содержание Result - все данные или частичные? - Что такое «сетевой буфер» на локальной машине?
- Откуда
Read
читает данные? Из БД или из кэша?
Повлияет ли модификация данных (UPDATE
или DELETE
) на получение из БД следующих данных? Заглушка кода:
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(queryString, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader());
{
while (reader.Read())
{
//ReadSingleRow...
//Perform some checks and if TRUE send to a manager obeject whcih perform UPDATE or DELETE on this record
}
}
}
или лучше использовать SqlDataAdapter
с DataSet
или DataTable
здесь?