Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
W tym przewodniku utworzysz aplikację WPF zawierającą kontrolki powiązane z danymi. Kontrolki są powiązane z rekordami produktów, które są hermetyzowane w zestawie danych. Możesz również dodawać przyciski, aby przeglądać produkty i zapisywać zmiany w rekordach produktów.
W tym przewodniku przedstawiono następujące zadania:
Tworzenie aplikacji WPF i zestawu danych generowanego na podstawie danych w przykładowej bazie danych AdventureWorksLT.
Utworzenie zestawu kontrolek powiązanych z danymi przez przeciągnięcie tabeli danych z okna Źródła danych do okna w projektancie WPF.
Tworzenie przycisków, które nawigują do przodu i do tyłu przez rekordy produktów.
Utworzenie przycisku, który zapisuje zmiany wprowadzane przez użytkowników do rekordów produktów w tabeli danych i źródłowym źródle danych.
Uwaga / Notatka
Instrukcje przedstawione w tym artykule ilustrują najnowszą wersję interaktywnego środowiska projektowego (IDE) dostępnego w programie Visual Studio. Na komputerze mogą być wyświetlane różne nazwy lub lokalizacje niektórych elementów interfejsu użytkownika. Być może używasz innej wersji programu Visual Studio lub różnych ustawień środowiska. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.
Wymagania wstępne
Do ukończenia tego przewodnika potrzebne są następujące składniki:
Do ukończenia tego samouczka potrzebne są obciążenia tworzenia aplikacji klasycznych platformy .NEToraz przechowywania i przetwarzania danych zainstalowanych w programie Visual Studio. Aby je zainstalować, otwórz Instalator programu Visual Studio i wybierz Modyfikuj (lub Więcej>Modyfikuj) obok wersji programu Visual Studio, którą chcesz zmodyfikować. Zobacz Modyfikowanie programu Visual Studio.
Dostęp do uruchomionego wystąpienia programu SQL Server lub programu SQL Server Express z dołączoną do niej przykładową bazą danych AdventureWorks Light (AdventureWorksLT). Aby pobrać bazę danych, zobacz Przykładowe bazy danych AdventureWorks.
Wcześniejsza wiedza na temat poniższych pojęć jest również przydatna, ale nie jest wymagana do ukończenia przewodnika:
Zestawy danych i TableAdaptery. Aby uzyskać więcej informacji, zobacz Narzędzia zestawu danych w programach Visual Studio i TableAdapters.
Powiązanie danych WPF. Aby uzyskać więcej informacji, zobacz Przegląd powiązania danych .
Tworzenie projektu
Utwórz nowy projekt WPF, aby wyświetlić rekordy produktów.
Otwórz program Visual Studio.
W oknie uruchamiania wybierz pozycję Utwórz nowy projekt.
Wyszukaj szablon projektu aplikacji WPF języka C# i wykonaj kroki tworzenia projektu, nazywając projekt AdventureWorksProductsEditor.
Program Visual Studio tworzy projekt AdventureWorksProductsEditor.
Tworzenie zestawu danych dla aplikacji
Przed utworzeniem kontrolek powiązanych z danymi należy zdefiniować model danych dla aplikacji i dodać go do okna Źródła danych . W tym przewodniku utworzysz zestaw danych do użycia jako model danych.
W menu Dane kliknij pozycję Pokaż źródła danych.
Zostanie otwarte okno Źródła danych .
W oknie Źródła danych kliknij pozycję Dodaj nowe źródło danych.
Otwiera się kreator Konfiguracja źródła danych.
Na stronie Wybierz typ źródła danych wybierz pozycję Baza danych, a następnie wybierz pozycję Dalej.
Na stronie Wybieranie modelu bazy danych wybierz pozycję Zestaw danych, a następnie wybierz pozycję Dalej.
Na stronie Wybieranie połączenia danych wybierz jedną z następujących opcji:
Jeśli na liście rozwijanej jest dostępne połączenie danych z przykładową bazą danych AdventureWorksLT, wybierz je, a następnie wybierz przycisk Dalej.
Kliknij pozycję Nowe połączenie i utwórz połączenie z bazą danych AdventureWorksLT.
Na stronie Zapisz parametry połączenia w pliku Konfiguracji aplikacji zaznacz pole wyboru Tak, zapisz połączenie jako , a następnie wybierz przycisk Dalej.
Na stronie Wybieranie obiektów bazy danych rozwiń węzeł Tabel, a następnie wybierz tabelę Product (SalesLT).
Kliknij przycisk Finish (Zakończ).
Program Visual Studio dodaje nowy
AdventureWorksLTDataSet.xsdplik do projektu i dodaje odpowiedni element AdventureWorksLTDataSet do okna Źródła danych . PlikAdventureWorksLTDataSet.xsddefiniuje typowy zestaw danych o nazwieAdventureWorksLTDataSeti tableAdapter o nazwieProductTableAdapter. W dalszej części tego przewodnika użyjeszProductTableAdapter, aby uzupełnić zestaw danych i zapisać zmiany z powrotem do bazy danych.Skompiluj projekt.
Edytuj domyślną metodę wypełniania obiektu TableAdapter
Aby wypełnić zestaw danych danymi, użyj Fill metody ProductTableAdapter. Domyślnie metoda Fill wypełnia element ProductDataTable we AdventureWorksLTDataSet wszystkimi wierszami danych z tabeli Product. Tę metodę można zmodyfikować tak, aby zwracała tylko podzbiór wierszy. W tym przewodniku zmodyfikuj metodę Fill tak, aby zwracała tylko wiersze dla produktów, które mają zdjęcia.
W Eksploratorze rozwiązań kliknij dwukrotnie plik AdventureWorksLTDataSet.xsd .
Otwiera się projektant zestawu danych.
W projektancie kliknij prawym przyciskiem myszy zapytanie Fill, GetData() i wybierz polecenie Konfiguruj.
Otworzy się kreator konfiguracji TableAdapter.
Na stronie Wprowadź instrukcję SQL, dodaj następującą klauzulę
WHEREpo instrukcjiSELECTw polu tekstowym.WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'Kliknij przycisk Finish (Zakończ).
Definiowanie interfejsu użytkownika
Dodaj kilka przycisków do okna, modyfikując kod XAML w projektancie WPF. W dalszej części tego przewodnika dodasz kod, który umożliwia użytkownikom przewijanie i zapisywanie zmian w rekordach produktów przy użyciu tych przycisków.
W Eksploratorze rozwiązań kliknij dwukrotnie plik MainWindow.xaml.
Zostanie otwarte okno w projektancie WPF.
W widoku XAML projektanta dodaj następujący kod między tagami
<Grid>:<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="625" /> </Grid.RowDefinitions> <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>Skompiluj projekt.
Tworzenie kontrolek powiązanych z danymi
Utwórz kontrolki, które wyświetlają rekordy klientów, przeciągając tabelę Product z okna Źródła danych do projektanta WPF.
W oknie Źródła danych kliknij menu rozwijane dla węzła Produkt i wybierz pozycję Szczegóły.
Rozwiń węzeł Product.
W tym przykładzie niektóre pola nie będą wyświetlane, dlatego kliknij menu rozwijane obok następujących węzłów i wybierz pozycję Brak:
IDKategoriiProduktu
ProductModelID
NazwaPlikuMiniaturyZdjęcia
rowguid
DataModyfikacji
Kliknij menu rozwijane obok węzła ThumbNailPhoto i wybierz pozycję Obraz.
Uwaga / Notatka
Domyślnie elementy w oknie Źródła danych reprezentujące obrazy mają domyślną kontrolkę ustawioną na Wartość Brak. Dzieje się tak, ponieważ obrazy są przechowywane jako tablice bajtów w bazach danych, a tablice bajtów mogą zawierać dowolne elementy z prostej tablicy bajtów do pliku wykonywalnego dużej aplikacji.
W oknie Źródła danych przeciągnij węzeł Product do wiersza siatki pod wierszem zawierającym przyciski.
Program Visual Studio generuje kod XAML, który definiuje zestaw kontrolek powiązanych z danymi w tabeli Products . Generuje również kod, który ładuje dane. Aby uzyskać więcej informacji na temat wygenerowanego kodu XAML i kodu, zobacz Bind WPF controls to data in Visual Studio (Wiązanie kontrolek WPF z danymi w programie Visual Studio).
W projektancie kliknij pole tekstowe obok etykiety ID produktu.
W oknie Właściwości zaznacz pole wyboru obok właściwości IsReadOnly .
Nawigowanie po rekordach produktów
Dodaj kod, który umożliwia użytkownikom przewijanie rekordów produktów przy użyciu przycisków < i >.
W edytorze projektowania dwukrotnie kliknij przycisk < na powierzchni okna.
Program Visual Studio otwiera plik z kodem i tworzy nową
backButton_Clickprocedurę obsługi zdarzenia dla zdarzenia Click.Zmodyfikuj procedurę
Window_Loadedobsługi zdarzeń, aby elementProductViewSource,AdventureWorksLTDataSetiAdventureWorksLTDataSetProductTableAdapterbył poza metodą i był dostępny dla całego formularza. Zadeklaruj tylko te, aby były globalne do formularza, i przypisz je wWindow_Loadedprogramie obsługi zdarzeń podobnym do następującego:private AdventureWorksProductsEditor.AdventureWorksLTDataSet AdventureWorksLTDataSet; private AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter adventureWorksLTDataSetProductTableAdapter; private System.Windows.Data.CollectionViewSource productViewSource; private void Window_Loaded(object sender, RoutedEventArgs e) { AdventureWorksLTDataSet = ((AdventureWorksProductsEditor.AdventureWorksLTDataSet)(this.FindResource("adventureWorksLTDataSet"))); // Load data into the table Product. You can modify this code as needed. adventureWorksLTDataSetProductTableAdapter = new AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter(); adventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product); productViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("productViewSource"))); productViewSource.View.MoveCurrentToFirst(); }Dodaj następujący kod do programu obsługi zdarzeń
backButton_Click:Wróć do projektanta i dwukrotnie kliknij przycisk >.
Dodaj następujący kod do programu obsługi zdarzeń
nextButton_Click:
Zapisywanie zmian w rekordach produktów
Dodaj kod, który umożliwia użytkownikom zapisywanie zmian w rekordach produktów przy użyciu przycisku Zapisz zmiany .
W projektancie kliknij dwukrotnie przycisk Zapisz zmiany .
Program Visual Studio otwiera plik za kodem i tworzy nową
saveButton_Clickprocedurę obsługi zdarzeń dla Click zdarzenia.Dodaj następujący kod do programu obsługi zdarzeń
saveButton_Click:Uwaga / Notatka
W tym przykładzie użyto metody
SavewTableAdapter, aby zapisać zmiany. Jest to odpowiednie w tym przewodniku, ponieważ zmieniana jest tylko jedna tabela danych. Jeśli musisz zapisać zmiany w wielu tabelach danych, możesz też użyćUpdateAllmetody wygenerowanejTableAdapterManagerprzez program Visual Studio z zestawem danych. Aby uzyskać więcej informacji, zobacz TableAdapters.
Testowanie aplikacji
Skompiluj i uruchom aplikację. Sprawdź, czy możesz wyświetlać i aktualizować rekordy produktów.
Naciśnij klawisz F5.
Aplikacja kompiluje i uruchamia. Sprawdź następujące:
Pola tekstowe zawierają dane z pierwszego rekordu produktu zawierającego zdjęcie. Ten produkt ma identyfikator 713 i nazwę Long-Sleeve Logo Jersey, S.
Możesz kliknąć przyciski > lub <, aby przejść do innych rekordów produktów.
W jednym z rekordów produktu zmień wartość Rozmiar , a następnie wybierz pozycję Zapisz zmiany.
Zamknij aplikację, a następnie uruchom ponownie aplikację, naciskając F5 w programie Visual Studio.
Przejdź do zmienionego rekordu produktu i sprawdź, czy zmiana została utrwalona.
Zamknij aplikację.
Dalsze kroki
Po ukończeniu tego przewodnika możesz wypróbować następujące powiązane zadania:
Dowiedz się, jak używać okna Źródła danych w programie Visual Studio do powiązania kontrolek WPF z innymi typami źródeł danych. Aby uzyskać więcej informacji, zobacz Wiązanie kontrolek WPF z usługą danych WCF.
Dowiedz się, jak używać okna Źródła danych w programie Visual Studio do wyświetlania powiązanych danych (czyli danych w relacji nadrzędny-podrzędny) w kontrolkach WPF. Aby uzyskać więcej informacji, zobacz Przewodnik: wyświetlanie powiązanych danych w aplikacji WPF.