Przejdź do treści stopki
Iron Academy Logo
Aplikacja C#
Aplikacja C#

Inne Kategorie

Przechowywanie danych w C# WinForms — Zrozumienie przepływu danych w formularzu Windows z Timem Coreyem (Lekcja 15)

Tim Corey
34m 39s

Przechowywanie i zarządzanie danymi w aplikacji C# WinForms to nie tylko umieszczanie kontrolek na ekranie. Chodzi o to, jak dane przemieszczają się z bazy danych lub pliku do modeli, a następnie są łączone, wyświetlane i manipulowane w obrębie formularza Windows. W 15. lekcji kursu "C# From Start to Finish" Tim Corey przeprowadza programistów przez ten proces w bardzo praktyczny sposób, budując formularz Create Tournament.

W tym artykule przyjrzymy się bliżej koncepcjom przechowywania danych w WinForms w C# dokładnie tak, jak Tim je wyjaśnia w swoim wideo. Nawigujemy przez jego kroki w Visual Studio, śledzimy, jak pobiera dane, wiąże je z kontrolkami, rozwiązuje problemy i weryfikuje wyniki.

Wprowadzenie formularza tworzenia turnieju i jego roli

O 0:00, Tim Corey wprowadza Lekcję 15 i wyjaśnia, że ten formularz Windows to znaczący punkt zwrotny w aplikacji. Zauważa, że gdy formularz będzie gotowy, aplikacja będzie głównie funkcjonalna. Mimo że formularz wygląda na skomplikowany, Tim uspokaja programistów, że system już obsługuje większość wymaganych funkcji.

Podkreśla, że do tego momentu wcześniejsza praca—modele, połączenia danych, tabele i wzorce—stworzyły już solidną podstawę. Celem teraz jest połączenie danych z formularzem i zapewnienie, że działa jako system, a nie jako niezależne kontrolki.

Przegląd formularza i naprawianie wczesnych problemów

O 1:10, Tim wyjaśnia, że zawsze gdy zaczyna formularz Windows, najpierw przegląda, co robi formularz i dzieli go na logiczne części. Od razu zauważa mały problem w projektancie: dwie listy mają tę samą etykietę z powodu błędu kopiuj-wklej.

Tim poprawia tekst etykiety przed sięgnięciem dalej, zauważając, że małe problemy z interfejsem użytkownika powinny być rozwiązane wcześnie. Ten krok wzmacnia fakt, że czysty projekt i klarowność są równie ważne, jak kod, gdy dane są wyświetlane użytkownikowi.

Planowanie kawałków danych i przepływu

O 2:07, Tim przedstawia, jak normalnie podejść do tego formularza, gdyby nie nagrywał wideo. Wyjaśnia, że zrobiłby:

  • Wypełnił rozwijane menu wyboru zespołu

  • Wypełnił listę wybranych zespołów

  • Podłączył akcję Dodaj Zespół

  • Obsługiwał nagrody

  • Zajął się działaniami tworzonymi i usuwanymi później

Ponieważ to jest lekcja wideo, Tim grupuje kilka części razem. Ten etap planowania jest kluczowy, ponieważ definiuje, jak dane będą przepływać między kolekcjami, kontrolkami i wydarzeniami w aplikacji WinForms.

Tworzenie kolekcji do przechowywania danych zespołu

O 3:45, Tim przełącza się na widok kodu za pomocą F7, nawigując przez Eksploratora Rozwiązań do pliku kodu formularza. Wyjaśnia, że rozwijane menu wyboru zespołu potrzebuje kolekcji obiektów TeamModel.

Tworzy Listę o nazwie availableTeams. Ta lista działa jako pamięć podręczna dla danych pobranych z źródła danych. Tim zauważa, że na razie jest zainicjowana jako nowa lista, ale później zostanie wypełniona z bazy danych lub pliku tekstowego, w zależności od konfiguracji.

To kluczowy moment, kiedy Tim pokazuje, że WinForms przechowuje dane w kolekcjach, a nie bezpośrednio w kontrolkach.

Definiowanie umowy pobierania danych

O 5:01, Tim tworzy metodę o nazwie GetTeamAll. Wyjaśnia, że ta metoda zgodna jest z wzorcami używanymi wcześniej w projekcie, takimi jak GetPersonAll. Dodaje ją do interfejsu IDataConnection, nazywając to umową, która definiuje jak dane są pobierane.

Następnie wdraża tę metodę w obu złączach SQL i tekstowych. Tim podkreśla tutaj zgodność, wyjaśniając, że przestrzeganie ustalonych wzorców ułatwia utrzymanie i zrozumienie systemu.

Praca z procedurami składowanymi i tabelami

O 6:32, Tim przechodzi do SQL Server i omawia procedury składowane. Przegląda istniejące procedury i wyjaśnia, dlaczego nie nadają się do tego przypadku. Ponieważ turniej jeszcze nie istnieje, tworzy nową procedurę składowaną o nazwie spTeam_GetAll.

Ta procedura:

  • Nie przyjmuje parametrów

  • Wykonuje proste polecenie select

  • Pobiera wszystkie zapisy zespołów z tabeli Teams

Tim wykonuje procedurę i sprawdza dane zwrócone. Ten krok zapewnia, że źródło danych działa przed powiązaniem go z formularzem.

Wypełnianie powiązanych danych za pomocą pętli

O 8:45, Tim wyjaśnia, że pobranie samych zespołów nie wystarcza. Każdy zespół zawiera również listę członków, która jest przechowywana w oddzielnej tabeli. Pokazuje, jak TeamModel zawiera kolekcję TeamMembers, którą trzeba wypełnić ręcznie.

Aby to zrobić, Tim przechodzi przez każdy zespół za pomocą pętli foreach. Dla każdego obiektu zespołu wywołuje inną procedurę składowaną, która pobiera osoby według ID zespołu. Ten proces buduje w pełni wypełniony model z powiązanymi danymi.

Tim wskazuje, że ten krok zapewnia, że aplikacja ma kompletne obiekty danych, a nie częściowe rekordy.

Podłączanie danych przechowywanych do formularza Windows

O 12:25, Tim wraca do formularza tworzenia turnieju i zastępuje tymczasową listę rzeczywistym wywołaniem danych za pomocą:

GlobalConfig.Connection.GetTeamAll()

Ta linia pobiera dane za pomocą skonfigurowanego łańcucha połączenia i przechowuje je w pamięci.

Następnie tworzy metodę InitializeLists, która wiąże dane z kontrolkami UI poprzez ustawienie:

  • DataSource

  • DisplayMember

Tim starannie wybiera TeamName jako właściwość wyświetlaną, zapewniając, że użytkownik widzi znaczący tekst, a nie odniesienia do obiektów.

Debugowanie błędów i weryfikacja danych

O 15:17, Tim uruchamia aplikację i napotyka błąd związany z brakującym parametrem. Spokojnie czyta wiadomość, wyjaśniając, że debugowanie jest normalną częścią rozwoju.

Naprawia problem, przekazując wymagany parametr i ustawiając typ polecenia na procedurę składowaną. Gdy rozwijana lista nadal jest pusta, Tim bada dalej.

O 22:35, zdaje sobie sprawę, że metoda InitializeLists nigdy nie została wywołana. Po dodaniu jej do konstruktora, dane są prawidłowo wyświetlane. Tim wykorzystuje tę chwilę, by podkreślić znaczenie przeglądania, jak kawałki pasują do siebie w systemie.

Zarządzanie wybranymi zespołami w pamięci

O 23:54, Tim tworzy kolejną listę o nazwie selectedTeams. Ta kolekcja przechowuje zespoły wybrane do turnieju. Wyjaśnia, że ten wzorzec jest identyczny z wcześniejszymi formularzami w projekcie, wzmacniając ponowne użycie i spójność.

Więże tę listę z inną listą za pomocą tego samego członka wyświetlania, co ułatwia pokazanie wybranych elementów.

Podłączenie zdarzeń przycisków i przenoszenie danych

O 28:07, Tim dwukrotnie klika przycisk Dodaj Zespół w projektancie, generując zdarzenie kliknięcia. Pobiera wybraną pozycję z rozwijanej listy, rzutuje ją z powrotem na TeamModel i sprawdza, czy nie jest pusta.

Następnie usuwa zespół z availableTeams, dodaje go do selectedTeams i przekształca obie listy. Tim wyjaśnia, że zresetowanie źródła danych zapewnia, że UI odzwierciedla zmiany natychmiast.

Podsumowanie przechowywania danych dla tej lekcji

O 32:13, Tim podsumowuje, co zostało osiągnięte:

  • Dane pobrane z bazy danych

  • Przechowywane w kolekcjach

  • Powiązane z kontrolkami WinForms

  • Przesunięte między listami

  • Zdebugowane i zweryfikowane

Zauważa, że pozostała praca zbuduje na tej podstawie.

Ostateczne myśli Tima Corey

Tim zamyka wideo, zachęcając programistów do dalszego ćwiczenia. Przypomina widzom, że zrozumienie, jak dane są przechowywane, pobierane i wyświetlane w aplikacji WinForms C#, jest kluczowe dla budowania niezawodnych systemów.

Ta lekcja pokazuje, jak programiści radzą sobie z rzeczywistymi danymi, rzeczywistymi błędami i rzeczywistymi procesami — krok po kroku, dokładnie tak, jak demonstruje Tim Corey.

Hero Worlddot related to Przechowywanie danych w C# WinForms — Zrozumienie przepływu danych w formularzu Windows z Ti...
Hero Affiliate related to Przechowywanie danych w C# WinForms — Zrozumienie przepływu danych w formularzu Windows z T...

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie