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

Примечание.

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

TableAdapters обеспечивают связь между приложением и базой данных. Они подключаются к базе данных, выполняют запросы или хранимые процедуры, а также возвращают новую таблицу данных или заполняют существующую DataTable возвращаемыми данными. TableAdapters также может отправлять обновленные данные из приложения обратно в базу данных.

TableAdapters создаются для вас при выполнении одного из следующих действий:

  • Перетащите объекты базы данных из сервера Обозреватель в конструктор наборов данных.

  • Запустите мастер настройки источника данных и выберите тип источника данных базы данных или веб-службы .

    Мастер настройки источника данных в Visual Studio

Вы также можете создать таблицу TableAdapter и настроить ее с источником данных, перетащив TableAdapter из панели элементов в пустую область в области конструктора наборов данных.

Общие сведения о TableAdapters см. в разделе "Заполнение наборов данных" с помощью TableAdapters.

Примечание.

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в этой статье. Возможно, вы используете другой выпуск Visual Studio или разные параметры среды. Дополнительные сведения см. в разделе Персонализация среды IDE.

Использование мастера настройки TableAdapter

Запустите мастер настройки TableAdapter, чтобы создать или изменить tableAdapters и связанные с ними таблицы. Вы можете настроить существующий TableAdapter, щелкнув его правой кнопкой мыши в конструкторе наборов данных.

Снимок экрана: мастер настройки адаптера таблиц.

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

  • Вы можете создать новую хранимую процедуру в базовой базе данных, если у вас есть правильные разрешения для базы данных. Если у вас нет этих разрешений, этот параметр недоступен.

  • Вы также можете выполнить существующие хранимые процедуры для команд SELECT, INSERT, UPDATE и DELETE таблицыAdapter. Хранимая процедура, назначенная команде Update , например, выполняется при вызове TableAdapter.Update() метода.

Сопоставьте параметры из выбранной хранимой процедуры с соответствующими столбцами в таблице данных. Например, если хранимая процедура принимает параметр с именем @CompanyName , который он передает в CompanyName столбец в таблице, задайте для исходного столбца@CompanyName параметра CompanyNameзначение .

Примечание.

Хранимая процедура, назначенная SELECT команде, выполняется путем вызова метода TableAdapter, который вы назовете на следующем шаге мастера. Метод по умолчанию — это Fillкод, который обычно используется для выполнения SELECT процедуры TableAdapter.Fill(tableName). Если изменить имя Fillпо умолчанию, замените Fill назначенным именем и замените TableAdapter фактическим именем TableAdapter (например, CustomersTableAdapter).

  • Выбор методов create для отправки обновлений непосредственно в параметр базы данных эквивалентен настройке GenerateDBDirectMethods свойства true. Параметр недоступен, если исходная инструкция SQL не предоставляет достаточно сведений или запрос не является обновляемым запросом. Такая ситуация может возникать, например, в запросах и запросах JOIN , возвращающих одно скалярное значение.

Дополнительные параметры в мастере позволяют:

  • Создание INSERTинструкций и DELETEUPDATEинструкций на SELECT основе инструкции, определенной на странице "Создание инструкций SQL"
  • Использовать оптимистическую блокировку
  • Укажите, следует ли обновлять таблицу данных после INSERT выполнения инструкций.UPDATE

Настройка метода Fill TableAdapter

Иногда может потребоваться изменить схему таблицы TableAdapter. Для этого необходимо изменить основной Fill метод TableAdapter. TableAdapters создаются с основным Fill методом, определяющим схему связанной таблицы данных. Основной Fill метод основан на запросе или хранимой процедуре, введенной при первоначальной настройке TableAdapter. Это первый (самый верхний) метод в таблице данных в конструкторе наборов данных.

TableAdapter с несколькими запросами

Все изменения, внесенные в основной Fill метод TableAdapter, отражаются в схеме связанной таблицы данных. Например, удаление столбца из запроса в основном Fill методе также удаляет столбец из связанной таблицы данных. Кроме того, удаление столбца из основного Fill метода удаляет столбец из любых дополнительных запросов для этого TableAdapter.

Мастер настройки запросов TableAdapter можно использовать для создания и изменения дополнительных запросов для TableAdapter. Эти дополнительные запросы должны соответствовать схеме таблицы, если они не возвращают скалярное значение. Каждый дополнительный запрос имеет указанное имя.

В следующем примере показано, как вызвать дополнительный запрос с именем FillByCity:

CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")

Запуск мастера настройки запросов TableAdapter с новым запросом

  1. Откройте свой набор данных в Конструкторе наборов данных.

  2. Если вы создаете новый запрос, перетащите объект запроса на вкладку DataSet панели элементовDataTableили выберите "Добавить запрос" в контекстном меню TableAdapter. Можно также перетащить объект query в пустую область конструктора наборов данных, которая создает tableAdapter без связанного DataTableобъекта. Эти запросы могут возвращать только одно (скалярные) значения или выполнять UPDATEINSERTDELETE команды в базе данных.

  3. На экране выбора данных Подключение ion выберите или создайте соединение, которое будет использоваться запросом.

    Примечание.

    Этот экран отображается только в том случае, если конструктор не может определить правильное подключение, используемое или если нет доступных подключений.

  4. На экране "Выбор типа команды" выберите из следующих методов получения данных из базы данных:

    • Использование инструкций SQL позволяет вводить инструкцию SQL для выбора данных из базы данных.

    • Создание новой хранимой процедуры позволяет мастеру создать новую хранимую процедуру (в базе данных) на основе указанной SELECT инструкции.

    • Использование существующих хранимых процедур позволяет выполнять существующую хранимую процедуру при выполнении запроса.

Запуск мастера настройки запросов TableAdapter в существующем запросе

  • Если вы редактировать существующий запрос TableAdapter, щелкните его правой кнопкой мыши и выберите команду "Настроить " в контекстном меню.

    Примечание.

    Щелкнув правой кнопкой мыши основной запрос TableAdapter, перенастройка tableAdapter и DataTable схемы. Щелкнув правой кнопкой мыши дополнительный запрос в TableAdapter, настраивает только выбранный запрос. Мастер настройки TableAdapter перенастраивает определение TableAdapter, а мастер настройки запросов TableAdapter перенастройки только выбранного запроса.

Добавление глобального запроса в TableAdapter

  • Глобальные запросы — это SQL-запросы, возвращающие одно (скалярное) значение или нет значения. Как правило, глобальные функции выполняют такие операции базы данных, как вставки, обновления и удаления. Они также агрегируют информацию, например количество клиентов в таблице или общую плату за все элементы в определенном заказе.

    Глобальные запросы добавляются путем перетаскивания объекта query из вкладки DataSet панели элементов в пустую область конструктора наборов данных.

  • Укажите запрос, выполняющий нужную задачу, например SELECT COUNT(*) AS CustomerCount FROM Customers.

    Примечание.

    Перетаскивание объекта query непосредственно в конструктор наборов данных создает метод, который возвращает только скалярное (одно) значение. Хотя выбранная вами процедура запроса или хранимой процедуры может возвращать более одного значения, метод, созданный мастером, возвращает только одно значение. Например, запрос может возвращать первый столбец первой строки возвращаемых данных.