Udostępnij za pośrednictwem


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 w currentCustomer obiekcie do TableAdapter.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 prefiksem orig do przechowywania oryginalnych wartości.

    Poniższy przykład aktualizuje istniejący rekord w Customers tabeli, przekazując nowe i oryginalne wartości w Customer obiekcie do TableAdapter.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 prefiksem orig do przechowywania oryginalnych wartości.

    Poniższy przykład usuwa rekord z Customers tabeli, przekazując oryginalne wartości w Customer obiekcie do TableAdapter.Delete metody .

    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);
    }
    

Zabezpieczenia platformy .NET

Musisz mieć uprawnienia do wykonania wybranej tabeli INSERT, UPDATElub DELETE w tabeli w bazie danych.