Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Неоднократное выполнение запросов






Итак, в запросе определяются правила, по которым извлекаются данные, но этого явно недостаточно для получения результатов, поскольку запрос должен быть выпол­нен, причем это может быть сделано несколько раз. Если же в промежутке между последовательно производимыми попытками выполнить один и тот же запрос источник данных изменяется, то получаемые результаты могут отличаться. Поэтому как только запрос определен, его выполнение будет всегда давать только самые последние резуль­таты. Обратимся к конкретному примеру. Ниже приведен другой вариант рассматриваемой здесь программы, где содержимое массива nums изменяется в промежутке между двумя последовательно производимыми попытками выполнить один и тот же запрос, хранящийся в переменной posNums.

// Сформировать простой запрос.

using System;

using System.Linq;

using System.Collections.Generic;

 

class SimpQuery {

static void Main() {

int[] nums = { 1, -2, 3, 0, -4, 5 };

 

// Сформировать простой запрос на получение только положительных значений.

var posNums = from n in nums

where n > 0

select n;

 

Console.Write(" Положительные значения из массива nums: ");

 

// Выполнить запрос и отобразить его результаты.

foreach(int i in posNums) Console.Write(i + " ");

Console.WriteLine();

 

// Внести изменения в массив nums.

Console.WriteLine(" \nЗадать значение 99 для элемента массива nums[1].");

nums[1] = 99;

 

Consofe.Write(" Положительные значения из массива nums\n" +

" после изменений в нем: ");

 

// Выполнить запрос второй раз.

foreach(int i in posNums) Console.Write(i + " ");

 

Console.WriteLine();

}

}

Вот к какому результату приводит выполнение этой программы.

Положительные значения из массива nums: 1 3 5

 

Задать значение 99 для элемента массива nums[l].

Положительные значения из массива nums

после изменений в нем: 1 99 3 5

Как следует из результата выполнения приведенной выше программы, значение элемента массива nums[1] изменилось с -2 на 99, что и отражают результаты повтор­ ного выполнения запроса. Этот важный момент следует подчеркнуть особо. Каждая попытка выполнить запрос приносит свои результаты, получаемые при перечислении текущего содержимого источника данных. Поэтому если источник данных претерпева­ ет изменения, то могут измениться и результаты выполнения запроса. Преимущества такого подхода к обработке запросов весьма значительны. Так, если по запросу полу­ чается список необработанных заказов в Интернет-магазине, то при каждой попытке выполнить запрос желательно получить сведения обо всех заказах, включая и только что введенные.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.