Практическое руководство. Сохранение данных из объекта в базе данных
Опубликовано: Апрель 2016
Можно сохранить данные объектов в базу данных путем передачи значений из объекта в один из методов 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 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); }
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
Чтобы обновить существующие записи из объекта в базу данных:
Измените записи путем вызова метода
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); }
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
Для удаления существующих записей из базы данных:
Удалить записи можно, передав исходные значения для поиска записи методу
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); }
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
Безопасность платформы .NET Framework
Для выполнения инструкций INSERT, UPDATE или DELETE над таблицами в базе данных необходимо иметь разрешения.
См. также
Привязка объектов в Visual Studio
Практическое руководство. Подключение к данным в объектах
Пошаговое руководство. Подключение к данным в объектах (Windows Forms)
Практическое руководство. Непосредственный доступ к базе данных с помощью адаптера таблицы
Привязка элементов управления Windows Forms к данным в Visual Studio
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Выборка данных в приложение
Привязка элементов управления к данным в Visual Studio
Редактирование данных в приложении
Проверка данных
Сохранение данных