Udostępnij przez


Zapisywanie danych z obiektu w bazie danych w aplikacjach .NET Framework

Uwaga / Notatka

Klasy DataSet 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 w bazie danych. Mimo że zestawy danych są sprawdzoną pomyślną technologią, zalecaną metodą dla nowych aplikacji platformy .NET jest użycie platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma bardziej prosty 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 uruchomić bezpośrednio przeciwko 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 / Notatka

Podczas konfigurowania obiektu TableAdapter główne zapytanie musi podać wystarczającą ilość informacji, aby można było utworzyć metody za pomocą DBDirect. 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 DataSet, DataTable, DataRow lub tablicy DataRows jako parametrów metody.
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 rekord nowego klienta w tabeli Customers, przekazując wartości w obiekcie currentCustomer do metody 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);
    }
    

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 / Notatka

    Obiekt musi zachować oryginalne wartości, aby je przekazać do metody Update. 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 / Notatka

    Obiekt musi zachować oryginalne wartości, aby przekazać je do metody Delete. 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 operacji INSERT, UPDATE lub DELETE na tabeli w bazie danych.