Zapisywanie danych z obiektu w bazie danych w aplikacjach .NET Framework
Uwaga
Zestawy danych i powiązane klasy to starsze technologie .NET Framework z początku 2000 roku, które umożliwiają aplikacjom pracę z danymi w pamięci, gdy aplikacje są odłączone od bazy danych. Technologie te są szczególnie przydatne w przypadku aplikacji, które umożliwiają użytkownikom modyfikowanie danych i utrwalanie zmian z powrotem w bazie danych. Mimo że zestawy danych okazały się bardzo udaną technologią, zalecamy, aby nowe aplikacje platformy .NET używały platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma prostszy interfejs programowania.
Dane w obiektach można zapisywać w bazie danych, przekazując wartości z obiektu do jednej z metod DBDirect obiektu TableAdapter (na przykład TableAdapter.Insert
). Aby uzyskać więcej informacji, zobacz TableAdapter.
Aby zapisać dane z kolekcji obiektów, wykonaj pętlę przez kolekcję obiektów (na przykład pętlę for-next) i wyślij wartości dla każdego obiektu do bazy danych przy użyciu jednej z metod tableAdapter DBDirect
.
Domyślnie DBDirect
metody są tworzone w tableAdapter, które można uruchamiać bezpośrednio w bazie danych. Metody te mogą być wywoływane bezpośrednio i nie wymagają DataSet lub DataTable obiektów do uzgadniania zmian w celu wysyłania aktualizacji do bazy danych.
Uwaga
Podczas konfigurowania obiektu TableAdapter główne zapytanie musi podać wystarczającą ilość informacji, aby DBDirect
można było utworzyć metody. Jeśli na przykład parametr TableAdapter jest skonfigurowany do wykonywania zapytań dotyczących danych z tabeli, która nie ma zdefiniowanej kolumny klucza podstawowego, nie generuje DBDirect
metod.
TableAdapter DBDirect, metoda | opis |
---|---|
TableAdapter.Insert |
Dodaje nowe rekordy do bazy danych i umożliwia przekazywanie poszczególnych wartości kolumn jako parametrów metody. |
TableAdapter.Update |
Aktualizuje istniejące rekordy w bazie danych. Metoda Update przyjmuje oryginalne i nowe wartości kolumn jako parametry metody. Oryginalne wartości są używane do lokalizowania oryginalnego rekordu, a nowe wartości są używane do aktualizowania tego rekordu.Metoda TableAdapter.Update jest również używana do uzgadniania zmian w zestawie danych z powrotem do bazy danych przez pobranie DataSettablicy parametrów metody , DataTable, DataRowlub tablicy DataRows. |
TableAdapter.Delete |
Usuwa istniejące rekordy z bazy danych na podstawie oryginalnych wartości kolumn przekazanych jako parametry metody. |
Aby zapisać nowe rekordy z obiektu do bazy danych
Utwórz rekordy, przekazując wartości do
TableAdapter.Insert
metody .Poniższy przykład tworzy nowy rekord klienta w
Customers
tabeli, przekazując wartości wcurrentCustomer
obiekcie doTableAdapter.Insert
metody .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); }
Aby zaktualizować istniejące rekordy z obiektu do bazy danych
Zmodyfikuj rekordy, wywołując metodę
TableAdapter.Update
, przekazując nowe wartości w celu zaktualizowania rekordu i przekazując oryginalne wartości w celu zlokalizowania rekordu.Uwaga
Obiekt musi zachować oryginalne wartości, aby przekazać je do
Update
metody . W tym przykładzie użyto właściwości z prefiksemorig
do przechowywania oryginalnych wartości.Poniższy przykład aktualizuje istniejący rekord w
Customers
tabeli, przekazując nowe i oryginalne wartości wCustomer
obiekcie doTableAdapter.Update
metody .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); }
Aby usunąć istniejące rekordy z bazy danych
Usuń rekordy, wywołując metodę
TableAdapter.Delete
i przekazując oryginalne wartości w celu zlokalizowania rekordu.Uwaga
Obiekt musi zachować oryginalne wartości, aby przekazać je do
Delete
metody . W tym przykładzie użyto właściwości z prefiksemorig
do przechowywania oryginalnych wartości.Poniższy przykład usuwa rekord z
Customers
tabeli, przekazując oryginalne wartości wCustomer
obiekcie doTableAdapter.Delete
metody .
Zabezpieczenia platformy .NET
Musisz mieć uprawnienia do wykonania wybranej tabeli INSERT
, UPDATE
lub DELETE
w tabeli w bazie danych.