Przegląd TableAdapter
TableAdapters zapewniają komunikację między bazą danych i aplikacji.W szczególności, TableAdapter łączy się z bazą danych, wykonuje kwerendy lub procedur przechowywanych i albo zwraca nowej tabeli danych z zwracanych danych lub wypełnienia istniejącego DataTable z zwróconych danych.TableAdapters są również używane do wysyłać zaktualizowane dane z powrotem do bazy danych aplikacji.
Użytkownicy poprzednich wersji programu Visual Studio można wyobrazić sobie TableAdapter jako DataAdapter z obiektu połączeń wbudowane i możliwość zawierają wiele kwerendy.Każda kwerenda dodaje się TableAdapter jest ujawniona jako metoda publiczna, który nazywa się po prostu podobnie jak metody lub funkcji na obiekcie.
Oprócz standardowych funkcji z DataAdapter, TableAdapters, udostępniają dodatkowe metody maszynowy, hermetyzujące kwerend, które współużytkują wspólny schemat z skojarzone wpisane DataTable.Innymi słowy może mieć dowolną liczbę kwerend, ma na TableAdapter tak długo, jak zostaną zwrócone dane zgodne ze wzorem do tego samego schematu.
W poprzedniej wersji Visual Studio, ADO.NET dane karty były używane do komunikacji między aplikacją i bazy danych.Podczas gdy nadal są dane karty główny składnik .NET Framework Data Providers, TableAdapters są generowane przez projektanta składniki, które usprawnienia funkcji DataAdapters.TableAdapters zwykle zawierają Fill i Update metod pobierania i aktualizacji danych w bazie danych.
TableAdapters są tworzone z Projektant Dataset wewnątrz z typami zestawów danych.TableAdapters można utworzyć podczas tworzenia nowego zestawu danych z Kreator konfiguracji źródła danych.Można również utworzyć TableAdapters w istniejących zestawach danych z Kreator konfiguracji TableAdapter lub poprzez przeciąganie obiektów bazy danych z Server Explorer na Projektant Dataset.Aby uzyskać więcej informacji, zobacz Jak: tworzenie TableAdapters.
Podczas gdy TableAdapters są zaprojektowane z Projektanta zestawów danych, TableAdapter klas generowanych nie są generowane jako klas zagnieżdżonych DataSet.Znajdują się one w odrębnej przestrzeni nazw specyficznych dla każdego zestawu danych.Na przykład, jeśli masz dataset, o nazwie NorthwindDataSet, TableAdapters związane z DataTables w NorthwindDataSet w NorthwindDataSetTableAdapters obszaru nazw.Uzyskać dostęp do określonego TableAdapter programowo, należy zadeklarować nowej instancji TableAdapter.Na przykład:
Dim northwindDataSet As New NorthwindDataSet()
Dim customersTableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()
customersTableAdapter.Fill(northwindDataSet.Customers)
NorthwindDataSet northwindDataSet = new NorthwindDataSet();
NorthwindDataSetTableAdapters.CustomersTableAdapter customersTableAdapter =
new NorthwindDataSetTableAdapters.CustomersTableAdapter();
customersTableAdapter.Fill(northwindDataSet.Customers);
Skojarzony schemat elementu DataTable
Podczas tworzenia TableAdapter, wstępnego kwerendy lub procedura przechowywana jest używane do definiowania schematu TableAdapter na skojarzone DataTable.Wykonanie tej kwerendy początkowej lub procedury przechowywanej, wywołując głównego TableAdapter Fill metody (która wypełnia TableAdapter na skojarzone DataTable).Wszelkie zmiany wprowadzone w kwerendzie głównej TableAdapter są odzwierciedlane w schematu tabeli skojarzonych danych.Na przykład usunięcie kolumny z kwerendy głównych usuwa kolumnę z tabeli skojarzonych danych.Użycie instrukcji SQL zwraca kolumny, które nie są w głównej kwerendzie, wszelkich dodatkowych kwerend na TableAdapter Projektant podejmie próbę zsynchronizować zmiany kolumny między głównym kwerendy i wszelkich dodatkowych kwerend.Aby uzyskać więcej informacji, zobacz Jak: edytowanie TableAdapters.
Polecenia aktualizacji TableAdapter
Funkcje aktualizacji TableAdapter jest zależna od tego, ile informacji jest dostępna na podstawie kwerendy główny świadczone w Kreatorze TableAdapter.Na przykład TableAdapters, które są skonfigurowane do pobrania wartości z wielu tabel (sprzężenia), wartości skalarnej, widoki lub wyniki funkcji agregujących nie są początkowo utworzony z możliwości, aby wysyłać aktualizacje w źródłowej bazie danych.Jednak można skonfigurować ręcznie w poleceń INSERT, UPDATE i DELETE Właściwości okna.
Kwerendy TableAdapter
W odróżnieniu od kart standardowych danych TableAdapters może zawierać wielu zapytań do wypełnienia ich tabele związane z nim dane.Aplikacja wymaga, jak wiele kwerendy TableAdapter można zdefiniować, tak długo, jak każda kwerenda zwraca dane, zgodne ze wzorem do tego samego schematu jako swojej tabeli skojarzonych danych.Umożliwia ładowanie danych, który spełnia kryteria zróżnicowane.Na przykład jeśli aplikacja zawiera tabelę Klienci, można utworzyć kwerendę, która wypełnia każdego klienta, którego nazwa zaczyna się od niektórych list tabeli i innej kwerendy, która wypełnia tabelę wszystkich klientów znajdujących się w tym samym stanie.Aby wypełnić Customers tabeli z klientami w danym Państwie, można utworzyć FillByState kwerendę, która przyjmuje parametr dla wartości stanu: SELECT * FROM Customers WHERE State = @State.Kwerenda jest wykonywana przez wywołanie FillByState metody i przekazanie wartości parametru like to: CustomerTableAdapter.FillByState("WA").Aby uzyskać więcej informacji, zobacz Jak: tworzenie kwerend TableAdapter.
Dodatkowo do kwerend, które zwracają dane tego samego schematu jako TableAdapter tabela danych można dodać kwerend zwracających skalarne wartości (pojedynczy).Na przykład tworzenia kwerendy, która zwraca liczbę klientów (SELECT Count(*) From Customers) jest prawidłowy dla CustomersTableAdapter , nawet jeśli dane zwrócone, nie jest zgodny ze schematem tabeli.
Właściwość ClearBeforeFill
TableAdapter dodaje właściwość nie jest dostępna na podstawie DataAdapter klasy.Domyślnie przy każdym wykonaniu kwerendy, aby wypełnić tabelę danych TableAdapter, danych jest wyczyszczone, i tylko wyniki kwerendy są ładowane do tabeli.Ustaw TableAdapter ClearBeforeFill właściwość, aby false Jeśli chcesz dodać lub scalanie danych zwróconych przez kwerendę do istniejących danych w tabeli danych.Niezależnie od tego, czy wyczyścić dane należy jawnie wysłać aktualizacje do bazy danych, jeśli jest to konieczne.Tak Pamiętaj, aby zapisać zmiany wprowadzone do danych w tabeli przed wykonaniem inną kwerendę, wpisuje do tabeli.Aby uzyskać więcej informacji, zobacz Jak: aktualizuje dane za pomocą TableAdapter.
Dziedziczenie TableAdapter
TableAdapters rozszerzyć funkcjonalność kart standardowych danych encapsulating skonfigurowanych DataAdapter.Domyślnie dziedziczy po TableAdapter Component i nie można rzutować na DataAdapter klasy.Rzutowanie TableAdapter do DataAdapter skutkuje InvalidCastException.Aby zmienić klasa podstawowa TableAdapter, można wpisać klasa, która wynika z Component w Klasy bazowej właściwości TableAdapter w Projektant Dataset.
TableAdapter metody i właściwości
Klasa TableAdapter nie jest częścią .NET Framework, i jako takie można nie można go wyszukać w dokumentacji lub Object Browser.Jest on tworzony w czasie projektowania, kiedy używać jednego z kreatorów wymienionych powyżej.Nazwę przypisaną do TableAdapter podczas jej tworzenia opiera się na nazwę tabeli, którą aktualnie pracuje.Na przykład podczas tworzenia TableAdapter na podstawie tabeli w bazie danych o nazwie Orders, czy o nazwie TableAdapter OrdersTableAdapter.Nazwa klasy TableAdapter można zmienić za pomocą Nazwa właściwość w Projektant Dataset.
Poniżej przedstawiono najczęściej używanych metod i właściwości TableAdapters:
Członkowskie |
Opis |
---|---|
TableAdapter.Fill |
Wypełnienie tabeli dane skojarzone TableAdapter z wyników wybierz polecenie TableAdapter.Aby uzyskać więcej informacji, zobacz Jak: wypełnić Dataset z danymi. |
TableAdapter.Update |
Wysyła zmiany bazy danych i zwraca liczbę całkowitą reprezentującą liczbę wierszy przez tę aktualizację.Aby uzyskać więcej informacji, zobacz Jak: aktualizuje dane za pomocą TableAdapter. |
TableAdapter.GetData |
Zwraca nowy DataTable wypełniony danymi. |
TableAdapter.Insert |
Tworzy nowy wiersz w tabeli danych.Aby uzyskać więcej informacji, zobacz Jak: Dodawanie wierszy do elementu DataTable. |
TableAdapter.ClearBeforeFill |
Określa, czy tabela danych jest opróżniany zanim zadzwonisz do jednego z Fill metody. |
Metoda TableAdapter aktualizacji
TableAdapters polecenia danych do odczytu do i zapisu z bazy danych.Początkowe 's TableAdapter Fill kwerendy (główną) jest używana jako podstawa do tworzenia schematu tabeli danych skojarzone jak również InsertCommand, UpdateCommand, i DeleteCommand polecenia powiązane z TableAdapter.Update metody.Oznacza to wywołanie TableAdapter Update metoda wykonuje instrukcje, utworzony przy TableAdapter został pierwotnie skonfigurowany, a nie jeden z dodatkowych kwerend dodaje się Kreatora konfiguracji kwerendy TableAdapter.
Korzystając z TableAdapter, skutecznie wykonuje te same operacje z poleceniami, które zazwyczaj będzie wykonywać.Na przykład, gdy wywołanie karta Fill metody, karta wykonuje polecenia dane w jego SelectCommand właściwości i używa czytnika danych (na przykład, SqlDataReader) do ładowania wyniku ustawiono w tabeli danych.Podobnie, gdy wywołanie karta Update metodę, wykonuje on odpowiednie polecenie (w UpdateCommand, InsertCommand, i DeleteCommand właściwości) dla każdej zmianie rekordu w tabeli danych.
[!UWAGA]
Jeśli nie ma wystarczającej ilości informacji w kwerendzie głównej InsertCommand, UpdateCommand, i DeleteCommand polecenia są tworzone domyślnie, gdy generowana jest TableAdapter.Jeśli główne 's TableAdapter kwerenda jest więcej niż jednej tabeli instrukcję SELECT, to jest możliwe, projektant nie będzie w stanie 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 z metod, które mogą być wykonywane bezpośrednio w bazie danych.Te metody (TableAdapter.Insert, TableAdapter.Update, i TableAdapter.Delete) mogą być wywoływane bezpośrednio do manipulowania danymi w bazie danych.Oznacza to, można wywołać metody te indywidualne w kodzie zamiast wywoływania TableAdapter.Update do obsługi wstawia, aktualizacji i usuwania, które oczekują dla tabeli skojarzonych danych.
Jeśli nie chcesz tworzyć tych metod bezpośrednie, ustaw TableAdapter GenerateDbDirectMethods właściwość, aby false (w Właściwości okna).Dodatkowe kwerendy dodaje się TableAdapter są autonomiczne kwerend — nie generują tych metod.
Obsługa typów Nullable TableAdapter
TableAdapters obsługi typów nullable Nullable(Of T) i T?.Aby uzyskać więcej informacji na temat typów nullable w języku Visual Basic, zobacz Typy wartości null (Visual Basic).Aby uzyskać więcej informacji dotyczących typów nullable w C#, zobacz Przy użyciu typu null (C# Programming Guide).
Zobacz też
Zadania
Jak: połączenia z danymi w bazie danych
Instruktaż: Łączenie z danymi w bazie danych (Windows Forms)
Koncepcje
Co nowego w projektowaniu danych aplikacji w Visual Studio 2012
Przygotowanie aplikacji do odbierania danych
Pobieranie danych do aplikacji
Wiązanie formantów z danych w programie Visual Studio
Sprawdzanie poprawności danych