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


Обновление данных с помощью TableAdapter в приложениях .NET Framework

Замечание

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

После изменения и проверки данных в вашем наборе данных можно отправить обновленные данные обратно в базу данных, вызвав метод Update объекта TableAdapter. Метод Update обновляет одну таблицу данных и выполняет правильную команду (INSERT, UPDATE или DELETE) на основании RowState каждой строки данных в таблице. Если набор данных содержит связанные таблицы, Visual Studio создает класс TableAdapterManager, используемый для выполнения обновлений. Класс TableAdapterManager гарантирует, что обновления выполняются в правильном порядке на основе ограничений внешнего ключа, определенных в базе данных. При использовании элементов управления с привязкой к данным архитектура привязки данных создает переменную-член класса TableAdapterManager с именем tableAdapterManager.

Замечание

При попытке обновить источник данных с содержимым набора данных можно получить ошибки. Чтобы избежать ошибок, рекомендуется поместить код, вызывающий метод адаптера Update в try/catch блоке.

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

  1. Вызовите метод адаптера Update в блоке try/catch .

  2. Если обнаружено исключение, найдите строку данных, вызвавшей ошибку.

  3. Примирите проблему в строке данных (программным способом, если вы можете, или путем представления недопустимой строки пользователю для изменения), а затем повторите попытку обновления (HasErrors, GetErrors).

Сохранение данных в базу данных

Update Вызовите метод TableAdapter. Передайте имя таблицы данных, содержащей значения, записываемые в базу данных.

Обновление базы данных с помощью TableAdapter

  • Заключите метод TableAdapter Update в try/catch блок. В следующем примере показано, как обновить содержимое таблицы Customers в NorthwindDataSet, находясь в блоке try/catch.

    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }