Практическое руководство. Сохранение данных из объекта в базе данных
Обновлен: Ноябрь 2007
Можно сохранить данные объектов в базу данных путем передачи значений из объекта в один из методов DBDirect адаптера таблицы (например TableAdapter.Insert). Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.
Чтобы сохранить данные из коллекции объектов, просмотрите всю коллекцию объектов (например циклом for-next) и отправьте значения каждого объекта в базу данных с помощью одного из методов DBDirect адаптера таблиц.
По умолчанию методы DBDirect создаются для адаптера таблиц, который может работать непосредственно с базой данных. Эти методы можно вызывать напрямую. Для отправки обновлений к базе данных они не требуют объектов DataSet или DataTable для согласования изменений.
Примечание. |
---|
При настройке адаптера таблиц в главном запросе необходимо указать достаточно сведений для создания методов DBDirect. Например, если адаптер таблиц настроен для таблицы, у которой не определен столбец первичного ключа, он не формирует DBDirect-методов. |
Метод DBDirect адаптера таблиц |
Описание |
---|---|
TableAdapter.Insert |
Добавляет новые записи в базу данных, позволяя передать отдельные значения столбцов в качестве параметров метода. |
TableAdapter.Update |
Обновляет в базе данных существующие записи. Метод Update принимает исходные и новые значения столбцов в качестве параметров метода. Исходные значения используются для обнаружения исходной записи, а новые значения используются для обновления этой записи. Метод TableAdapter.Update также используется для согласования изменений в наборе данных с базой данных путем принятия в качестве параметров метода DataSet, DataTable, DataRow или массива DataRow. |
TableAdapter.Delete |
Удаляет существующие записи из базы данных на основе исходных значений столбца, переданных как параметры метода. |
Для сохранения новых записей из объекта в базу данных:
Создайте записи, передавая значения в метод TableAdapter.Insert.
В следующем примере создается новая запись клиента в таблице Customers путем передачи значений в объекте currentCustomer методу TableAdapter.Insert.
Private Sub AddNewCustomer(ByVal currentCustomer As Customer) CustomersTableAdapter.Insert( _ currentCustomer.CustomerID, _ currentCustomer.CompanyName, _ currentCustomer.ContactName, _ currentCustomer.ContactTitle, _ currentCustomer.Address, _ currentCustomer.City, _ currentCustomer.Region, _ currentCustomer.PostalCode, _ currentCustomer.Country, _ currentCustomer.Phone, _ currentCustomer.Fax) End Sub
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 Sub UpdateCustomer(ByVal cust As Customer) 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) End Sub
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 Sub DeleteCustomer(ByVal cust As Customer) CustomersTableAdapter.Delete( _ cust.origCustomerID, _ cust.origCompanyName, _ cust.origContactName, _ cust.origContactTitle, _ cust.origAddress, _ cust.origCity, _ cust.origRegion, _ cust.origPostalCode, _ cust.origCountry, _ cust.origPhone, _ cust.origFax) End Sub
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); }
Безопасность
Для выполнения инструкций INSERT, UPDATE или DELETE над таблицами в базе данных необходимо иметь разрешения.
См. также
Задачи
Практическое руководство. Подключение к данным в объекте
Пошаговое руководство. Подключение к данным в объектах
Практическое руководство. Непосредственный доступ к базе данных с помощью адаптера таблицы
Основные понятия
Привязка объектов в Visual Studio
Общие сведения об отображении данных
Другие ресурсы
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Отображение данных на форме в приложениях Windows