Сохранение данных из объекта в базу данных в приложениях платформа .NET Framework

Примечание.

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

Вы можете сохранить данные в объектах в базу данных, передав значения из объекта в один из методов DBDirect TableAdapter (например, TableAdapter.Insert). Дополнительные сведения см. в статье TableAdapter.

Чтобы сохранить данные из коллекции объектов, выполните цикл по коллекции объектов (например, цикл для следующего) и отправьте значения для каждого объекта в базу данных с помощью одного из методов TableAdapter DBDirect .

По умолчанию DBDirect методы создаются в TableAdapter, который можно запускать непосредственно в базе данных. Эти методы могут вызываться напрямую и не требуются DataSet или DataTable объекты для согласования изменений для отправки обновлений в базу данных.

Примечание.

При настройке TableAdapter основной запрос должен предоставить достаточно сведений для DBDirect создания методов. Например, если tableAdapter настроен для запроса данных из таблицы, которая не имеет определенного столбца первичного ключа, он не создает DBDirect методы.

Метод TableAdapter DBDirect Description
TableAdapter.Insert Добавляет новые записи в базу данных и позволяет передавать отдельные значения столбцов в качестве параметров метода.
TableAdapter.Update Обновления существующие записи в базе данных. Метод Update принимает исходные и новые значения столбцов в качестве параметров метода. Исходные значения используются для поиска исходной записи, а новые значения используются для обновления этой записи.

Этот TableAdapter.Update метод также используется для согласования изменений в наборе данных обратно в базу данных путем приема DataSetили DataTableDataRowмассива в DataRowкачестве параметров метода.
TableAdapter.Delete Удаляет существующие записи из базы данных на основе исходных значений столбцов, переданных в качестве параметров метода.

Сохранение новых записей из объекта в базу данных

  • Создайте записи, передав значения в TableAdapter.Insert метод.

    В следующем примере создается новая запись клиента в Customers таблице путем передачи значений currentCustomer в объект методу TableAdapter.Insert .

    private void AddNewCustomers(Customer currentCustomer)
    {
        customersTableAdapter.Insert( 
            currentCustomer.CustomerID, 
            currentCustomer.CompanyName, 
            currentCustomer.ContactName, 
            currentCustomer.ContactTitle, 
            currentCustomer.Address, 
            currentCustomer.City, 
            currentCustomer.Region, 
            currentCustomer.PostalCode, 
            currentCustomer.Country, 
            currentCustomer.Phone, 
            currentCustomer.Fax);
    }
    

Обновление существующих записей из объекта в базу данных

  • Измените записи путем вызова TableAdapter.Update метода, передачи новых значений для обновления записи и передачи исходных значений для поиска записи.

    Примечание.

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

    В следующем примере обновляется существующая запись в Customers таблице путем передачи новых и исходных значений Customer в объект в TableAdapter.Update метод.

    private void UpdateCustomer(Customer cust)
    {
        customersTableAdapter.Update(
            cust.CustomerID,
            cust.CompanyName,
            cust.ContactName,
            cust.ContactTitle,
            cust.Address,
            cust.City,
            cust.Region,
            cust.PostalCode,
            cust.Country,
            cust.Phone,
            cust.Fax,
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

Удаление существующих записей из базы данных

  • Удалите записи, вызвав TableAdapter.Delete метод и передав исходные значения, чтобы найти запись.

    Примечание.

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

    В следующем примере запись удаляется из Customers таблицы путем передачи исходных значений Customer в объект в TableAdapter.Delete метод.

    private void DeleteCustomer(Customer cust)
    {
        customersTableAdapter.Delete(
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

Безопасность в .NET

Необходимо иметь разрешение на выполнение выбранной INSERTUPDATEтаблицы или DELETE таблицы в базе данных.