Udostępnij za pośrednictwem


TableAdapter — Przegląd

 

TableAdapters są generowane przez projektanta składniki połączenia z bazą danych, wykonywanie kwerend lub procedur przechowywanych i wypełnienie ich DataTable zwracanych danych. TableAdapters są również używane wysyłać zaktualizowane dane z powrotem do bazy danych aplikacji. Może mieć dowolną liczbę kwerend żądanej na TableAdapter tak długo, jak zwracają dane były zgodne ze schematem tabeli, z którym skojarzony jest TableAdapter. Poniższy diagram przedstawia interakcje TableAdapters z baz danych i innych obiektów w pamięci:

Przepływ danych w aplikacji klienckiej

Gdy są wyposażone w TableAdapters Projektant obiektów Dataset, klasy TableAdapter generowane nie są generowane jako klas zagnieżdżonych DataSet. Znajdują się one w oddzielnych przestrzeni nazw specyficzne dla każdego zestawu danych. Na przykład, jeśli masz zestaw danych o nazwie NorthwindDataSet, TableAdapters skojarzone z DataTables w NorthwindDataSet w NorthwindDataSetTableAdapters przestrzeni nazw. Dostępu do określonego TableAdapter programowo, należy zadeklarować nowe wystąpienie TableAdapter. Na przykład:

NorthwindDataSet northwindDataSet = new NorthwindDataSet();

NorthwindDataSetTableAdapters.CustomersTableAdapter customersTableAdapter = 
    new NorthwindDataSetTableAdapters.CustomersTableAdapter();

customersTableAdapter.Fill(northwindDataSet.Customers);
Dim northwindDataSet As New NorthwindDataSet()
Dim customersTableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()

customersTableAdapter.Fill(northwindDataSet.Customers)

Skojarzony schemat DataTable

Podczas tworzenia TableAdapter, początkowej zapytań lub procedurze składowanej służy do definiowania schematu TableAdapter użytkownika skojarzone DataTable. Wykonanie tego zapytania początkowego lub procedura składowana przez wywołanie TableAdapter Fill — Metoda (która wypełnia TableAdapter użytkownika skojarzone DataTable). Zmiany wprowadzone w kwerendzie głównej TableAdapter są uwzględniane w schemacie skojarzone dane tabeli. Na przykład usunięcie kolumny z głównej kwerendy usuwa kolumny z tabeli powiązane dane. Użycie instrukcji SQL zwracanie kolumn, które nie znajdują się w głównej kwerendy, żadnych dodatkowych zapytań w TableAdapter Projektant będzie podejmować próby synchronizowanie zmian kolumny między głównym zapytań i wszelkie dodatkowe kwerendy. Aby uzyskać więcej informacji, zobacz Porady: edytowanie TableAdapters.

Polecenia aktualizacji TableAdapter

Funkcja aktualizacji TableAdapter jest zależna od ilości informacji znajduje się na podstawie kwerendy głównego w Kreatorze TableAdapter. Na przykład TableAdapters skonfigurowanych do pobierania wartości z wielu tabel (sprzężenia), wartości skalarnych, widoki lub wyniki funkcje agregujące nie są początkowo tworzone umożliwia wysyłanie aktualizacji do podstawowej bazy danych. Jednak można skonfigurować ręcznie w polecenia INSERT, UPDATE i DELETE właściwości okna.

TableAdapter — zapytania

Obiekt TableAdapter z wieloma zapytaniami

TableAdapters może zawierać wielu zapytań do wypełnienia ich tabele powiązane dane. Można zdefiniować dowolną liczbę zapytań dotyczących TableAdapter wymaga aplikacji, tak długo, jak każda kwerenda zwraca dane były zgodne do tego samego schematu jako jego skojarzone dane tabeli. Dzięki temu ładowania danych, który spełnia kryteria różne. Na przykład jeśli aplikacja zawiera tabelę Klienci, możesz utworzyć zapytanie, które wypełnia tabelę z wszystkich klientów, których nazwa rozpoczyna się od określonej litery i inne zapytanie, która wypełnia tabelę wszystkich klientów znajdujących się w tym samym stanie. Aby wypełnić Customers tabeli z klientami w danym stanie, można utworzyć FillByState zapytanie, które przyjmuje parametr dla wartości stanu: SELECT * FROM Customers WHERE State = @State. Wykonanie kwerendy przez wywołanie metody FillByState metody i przekazywanie wartości parametru podobnie do następującej: CustomerTableAdapter.FillByState("WA"). Aby uzyskać więcej informacji, zobacz Porady: tworzenie zapytań TableAdapter.

Oprócz zapytania, które zwracają dane tego samego schematu jako TableAdapter tabeli danych można dodać zapytania, które zwracają wartości skalarne (pojedynczy). Na przykład utworzyć kwerendę, która zwraca liczbę klientów (SELECT Count(*) From Customers) jest nieprawidłowa dla CustomersTableAdapter nawet, jeśli dane zwracane, nie jest zgodny ze schematem tabeli.

Właściwość ClearBeforeFill

Domyślnie za każdym razem, gdy wykonywanie zapytań do wypełnienia tabeli danych TableAdapter, dane są usuwane, a wyniki zapytania są ładowane do tabeli. Ustaw TableAdapter ClearBeforeFill dla właściwości false Jeśli chcesz dodać lub scalania danych zwracanych przez zapytanie do istniejących danych w tabeli danych. Niezależnie od tego, czy czyszczenia danych należy jawnie wysyłanie aktualizacji w bazie danych, jeśli to konieczne. Dlatego pamiętaj, aby zapisać zmiany wprowadzone w danych w tabeli przed wykonaniem innej kwerendy, który wypełnia tabelę. Aby uzyskać więcej informacji, zobacz Porady: aktualizowanie danych za pomocą TableAdapter.

Dziedziczenie TableAdapter

TableAdapters rozszerzyć funkcjonalność danych standardowych kart zawieranie skonfigurowany DataAdapter. Domyślnie dziedziczy TableAdapter Component i nie można rzutować DataAdapter klasy. Rzutowanie TableAdapter do DataAdapter powoduje InvalidCastException. Aby zmienić klasy podstawowej TableAdapter, można wpisać klasę pochodną Component w klasy podstawowej właściwość TableAdapter w Projektant obiektów Dataset.

Właściwości i metod TableAdapter

Klasa TableAdapter nie jest częścią .NET Framework, i w związku z tym użytkownik nie może wyszukać ją w dokumentacji lub przeglądarki obiektów. Jest on tworzony w czasie projektowania, używając jednego z kreatorów wymienionych powyżej. Nazwa przypisana do TableAdapter podczas jej tworzenia opiera się na nazwę tabeli, do której pracujesz. Na przykład, gdy tworzenie TableAdapter na podstawie tabeli w bazie danych o nazwie Orders, będą miały postać TableAdapter OrdersTableAdapter. Nazwa klasy TableAdapter można zmienić za pomocą Nazwa we właściwości Projektant obiektów Dataset.

Poniżej przedstawiono najczęściej używanych metod i właściwości TableAdapters:

Element członkowski

Opis

TableAdapter.Fill

Wypełnia TableAdapter skojarzone dane tabeli z wynikami polecenia SELECT TableAdapter. Aby uzyskać więcej informacji, zobacz Porady: wypełnianie zestawu danych z danymi.

TableAdapter.Update

Wysyła zmiany z powrotem do bazy danych i zwraca liczbę całkowitą reprezentującą liczbę wierszy aktualizacja dotyczy. Aby uzyskać więcej informacji, zobacz Porady: aktualizowanie danych za pomocą TableAdapter.

TableAdapter.GetData

Zwraca nowy DataTable wypełniany danymi.

TableAdapter.Insert

Tworzy nowy wiersz w tabeli danych. Aby uzyskać więcej informacji, zobacz Porady: dodawanie wierszy do DataTable.

TableAdapter.ClearBeforeFill

Określa, czy tabela danych jest opróżniany przed wywołaniem jeden z Fill metody.

Metoda aktualizacji TableAdapter

TableAdapters polecenia danych do odczytu i zapisu w bazie danych. TableAdapter w początkowej Fill kwerendy (główną) służy do tworzenia schematu tabeli skojarzonych danych na podstawie, jak również InsertCommand, UpdateCommand, i DeleteCommand polecenia skojarzone z TableAdapter.Update metody. Oznacza to, że wywołanie TableAdapter Update Metoda wykonuje instrukcje, tworzonych podczas TableAdapter pierwotnie został skonfigurowany, a nie w jednym z dodatkowych kwerend dodaje się Kreator konfiguracji zapytań TableAdapter.

Użycie TableAdapter, skutecznie wykonuje te same operacje z poleceniami, które zazwyczaj wykona. Na przykład, gdy zostanie wywołana karty Fill metody, karta wykonuje polecenie danych w jego SelectCommand Właściwości i używa czytnika danych (na przykład SqlDataReader) załadować zestaw wyników na tabeli danych. Podobnie, gdy zostanie wywołana karty Update metody, wykonuje odpowiednie polecenie (w UpdateCommand, InsertCommand, i DeleteCommand Właściwości) dla każdego zmienił rekord w tabeli danych.

Uwaga

Jeśli ma za mało informacji w kwerendzie głównej InsertCommand, UpdateCommand, i DeleteCommand poleceń jest tworzonych domyślnie podczas generowania TableAdapter. Jeśli main TableAdapter zapytanie jest więcej niż jednej tabeli instrukcji SELECT, jest możliwe, Projektant nie będzie mógł wygenerować InsertCommand, UpdateCommand, i DeleteCommand. Jeśli te polecenia nie są generowane, może wystąpić błąd podczas wykonywania TableAdapter.Update metody.

TableAdapter GenerateDbDirectMethods

Oprócz InsertCommand, UpdateCommand, i DeleteCommand, TableAdapters są tworzone za pomocą metod, które mogą być wykonywane bezpośrednio w bazie danych. Te metody (TableAdapter.Insert, TableAdapter.Update, i TableAdapter.Delete) może być wywoływana bezpośrednio do manipulowania danymi w bazie danych. Oznacza to, że można wywołać te poszczególne metody w kodzie zamiast wywoływania TableAdapter.Update — do obsługi operacji wstawiania, aktualizacji i usuwania oczekujących skojarzone dane tabeli.

Jeśli nie chcesz utworzyć tych metod bezpośrednie, ustaw TableAdapter GenerateDbDirectMethods dla właściwości false (w właściwości okna). Autonomiczny zapytania są dodatkowe kwerendy dodane do TableAdapter — nie generują one tych metod.

TableAdapter obsługę typów dopuszczających wartości zerowe

TableAdapters obsługuje typy dopuszczające wartości zerowe Nullable(Of T) i T?. Aby uzyskać więcej informacji na typy dopuszczające wartości zerowe w języku Visual Basic, zobacz Typy o wartości zerowalnej (Visual Basic). Aby uzyskać więcej informacji na typy dopuszczające wartości zerowe w języku C#, zobacz Używanie typów dopuszczających wartości zerowe (Przewodnik programowania w języku C#).

Zobacz też

Wskazówki dotyczące danych
Porady: łączenie z danymi w bazie danych
Wskazówki: łączenie z danymi w bazie danych (formularze systemu Windows)
Przygotowywanie aplikacji na otrzymywanie danych
Pobieranie danych do aplikacji
Powiązanie formantów z danymi w programie Visual Studio
Edytowanie danych w aplikacji
Sprawdzanie poprawności danych
Zapisywanie danych