Поделиться через


Создание параметризованных запросов TableAdapter в приложениях платформа .NET Framework

Примечание.

Наборы данных и связанные классы являются устаревшими технологиями платформа .NET Framework с начала 2000-х годов, которые позволяют приложениям работать с данными в памяти во время отключения приложений от базы данных. Технологии особенно полезны для приложений, которые позволяют пользователям изменять данные и сохранять изменения обратно в базу данных. Хотя наборы данных оказались очень успешными, мы рекомендуем новым приложениям .NET использовать Entity Framework Core. Entity Framework предоставляет более естественный способ работы с табличными данными в виде объектных моделей, и он имеет более простой интерфейс программирования.

Параметризованный запрос возвращает данные, соответствующие условиям WHERE предложения в запросе. Например, можно параметризировать список клиентов, чтобы отображать только клиентов из определенного города, добавив WHERE City = @City в конец инструкции SQL, возвращающей список клиентов.

В конструкторе наборов данных создаются параметризованные запросы TableAdapter. Их также можно создать в приложении Windows с помощью команды "Параметризация источника данных" в меню "Данные". Команда Parameterize Data Source создает элементы управления в форме, где можно ввести значения параметров и запустить запрос.

Примечание.

При создании параметризованного запроса используйте нотацию параметров, относящуюся к базе данных, которую вы кодируете. Например, источники данных Access и OleDb используют вопросительный знак "?" для обозначения параметров, поэтому WHERE предложение будет выглядеть следующим образом: WHERE City = ?

Создание параметризованного запроса TableAdapter

Порядок создания параметризованного запроса в Конструкторе наборов данных

  • Создайте новый TableAdapter, добавив WHERE предложение с требуемыми параметрами в инструкцию SQL. Дополнительные сведения см. в разделе "Создание и настройка TableAdapters".

    or

  • Добавьте запрос к существующему TableAdapter, добавив WHERE предложение с требуемыми параметрами в инструкцию SQL.

Порядок создания параметризованного запроса при разработке формы с привязкой к данным

  1. Выберите на форме элемент управления, который уже привязан к набору данных. Дополнительные сведения см. в статье "Привязка элементов управления Windows Forms к данным в Visual Studio".

  2. В меню "Данные" выберите "Добавить запрос".

  3. Заполните диалоговое окно построителя условий поиска, добавив WHERE предложение с требуемыми параметрами в инструкцию SQL.

Добавление запроса в существующую форму с привязкой к данным

  1. Откройте форму в конструкторе Windows Forms.

  2. В меню "Данные" выберите "Добавить запрос" или "Смарт-теги данных".

    Примечание.

    Если команда Добавить запрос в меню Данные отсутствует, выберите на форме элемент управления, отображающий тот источник данных, в который вы хотите добавить параметризацию. Например, если форма отображает данные в элементе управления DataGridView, выберите его. Если форма отображает данные в отдельных элементах управления, выберите любой элемент управления с привязкой к данным.

  3. В области таблицы "Выбор источника данных" выберите таблицу, в которую требуется добавить параметризацию.

  4. Введите имя в поле Имя нового запроса, если вы создаете запрос.

    or

    Выберите запрос в поле Имя существующего запроса.

  5. В текстовом поле запроса введите запрос, принимаюющий параметры.

  6. Нажмите ОК.

    Элемент управления для ввода параметра и кнопка Загрузка добавляются на форму в элемент управления ToolStrip.

Запрос значений NULL

Параметры TableAdapter можно назначать значения NULL, если требуется запрашивать записи, у которых нет текущего значения. Например, рассмотрим следующий запрос, имеющий ShippedDate параметр в предложении WHERE :

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

Если это был запрос к TableAdapter, можно запросить все заказы, которые не были отправлены с помощью следующего кода:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

Чтобы разрешить запрос принимать значения NULL, выполните следующие действия.

  1. В конструкторе наборов данных выберите запрос TableAdapter, который должен принимать значения параметров NULL.

  2. В окне "Свойства" выберите "Параметры", а затем нажмите кнопку с многоточием (...), чтобы открыть редактор коллекции параметров.

  3. Выберите параметр, разрешающий значения NULL, и задайте для свойства AllowDbNull значение true.