Руководство по работе с БД Firebird с использованием библиотеки ADO .Net 2.0

       

Класс TableAdapter


Он является ключевым звеном в цепочке связи данных с пользовательскими элементами управления. Если провести аналогию с терминами М. Фаулера [], то TableAdapter является шлюзом таблицы данных для DataTable. Он инкапсулирует в себе логику обновления загрузки и поиска данных и относится к Data Access Layer. Что же касается DataSet и DataTable, то их можно отнести к уровню бизнес-логики (Business Layer)

Visual Studio .Net 2005 сама позаботилась о генерации кода этого класса. Давайте посмотрим, что же она нам предлагает. Итак:

  • методы Fill() и GetData() – единственное отличие в том, что Fill принимает существующую DataTable в качестве аргумента, а GetData() создает новую, заполняет её данными и возвращает клиенту.
  • Свойство ClearBeforeFill, которое используется вышеназванными методами для определения, стоит ли очищать таблицу перед её заполнением.
  • Стандартный набор CRUD операций: insert, update, delete, среди которых присуствуют перегруженные методы с типизированными аргументами, соответствующими таблице базы данных
  • Общее свойство Connection
  • Так же у нас есть возможность создать дополнительные запросы к базе данных. Для этого нам понадобится инструмент Search Criteria Builder. Для его запуска необходимо у нашего адаптера выбрать пункт меню «Add Query»:

    Вводим название запроса (а фактически название нового метода в вашем TableAdapte-е), а так же его текст, либо вручную указав условие выборки, либо используя инструмент Query Builder:



    ПРИМЕЧАНИЕ.При записи условия выборки используйте позиционные параметры (символ «?»). Код метода будет сгенерирован автоматически, так что особого неудобства это не доставит.

    После всех операций будет сгенерирован соответствующий метод. Так же дизайнер VS .Net 2005 добавит компонент ToolStrip к вашей форме с кнопкой запуска этого метода и полем для задания фильтра. Мне кажется это излишним, но, может быть, кому-нибудь понравится.

    СОВЕТ.  Visual Studio .Net 2005 разделяет код, используемый дизайнером и пользовательский код за счет partial классов. В нормальном приложении нам наверняка понадобиться расширить логику TableAdapter. Сделать это можно, описав partial class, соответствующий классу конкретного TableAdapter-a, сгенерированного дизайнером.



    Содержание раздела