Tworzenie kontrolki użytkownika programu .NET Framework Windows Forms obsługującej powiązanie danych odnośników
Uwaga
Zestawy danych 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 z powrotem w bazie danych. Mimo że zestawy danych okazały się bardzo udaną technologią, zalecamy, aby nowe aplikacje platformy .NET używały platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma prostszy interfejs programowania.
Podczas wyświetlania danych w formularzach systemu Windows można wybrać istniejące kontrolki z przybornika lub utworzyć kontrolki niestandardowe, jeśli aplikacja wymaga funkcji niedostępnych w standardowych kontrolkach. W tym przewodniku pokazano, jak utworzyć kontrolkę, która implementuje element LookupBindingPropertiesAttribute. Kontrolki, które implementują element LookupBindingPropertiesAttribute , mogą zawierać trzy właściwości, które mogą być powiązane z danymi. Takie kontrolki są podobne do .ComboBox
Aby uzyskać więcej informacji na temat tworzenia kontrolek, zobacz Tworzenie kontrolek formularzy systemu Windows w czasie projektowania.
Podczas tworzenia kontrolek do użycia w scenariuszach powiązania danych należy zaimplementować jeden z następujących atrybutów powiązania danych:
Użycie atrybutu powiązania danych |
---|
Zaimplementuj kontrolki DefaultBindingPropertyAttribute na prostych kontrolkach, takich jak TextBox, które wyświetlają pojedynczą kolumnę (lub właściwość) danych. Aby uzyskać więcej informacji, zobacz Tworzenie kontrolki użytkownika formularzy systemu Windows, która obsługuje proste powiązanie danych. |
Zaimplementuj kontrolki ComplexBindingPropertiesAttribute włączone, takie jak DataGridView, które wyświetlają listy (lub tabele) danych. Aby uzyskać więcej informacji, zobacz Tworzenie kontrolki użytkownika formularzy systemu Windows, która obsługuje złożone powiązanie danych. |
Zaimplementuj kontrolki LookupBindingPropertiesAttribute włączone, takie jak ComboBox, które wyświetlają listy (lub tabele) danych, ale także muszą przedstawić jedną kolumnę lub właściwość. (Ten proces jest opisany na tej stronie przewodnika). |
Ten przewodnik tworzy kontrolkę odnośnika, która wiąże się z danymi z dwóch tabel. W tym przykładzie użyto Customers
tabel i Orders
z przykładowej bazy danych Northwind. Kontrolka odnośnika jest powiązana z polem CustomerID
Orders
z tabeli. Używa tej wartości do wyszukania CompanyName
elementu Customers
z tabeli.
W tym przewodniku dowiesz się, jak wykonywać następujące działania:
Utwórz nową aplikację Windows Forms (.NET Framework).
Dodaj nową kontrolkę użytkownika do projektu.
Wizualnie projektuj kontrolkę użytkownika.
Zaimplementuj
LookupBindingProperty
atrybut .Tworzenie zestawu danych za pomocą kreatora konfiguracji źródła danych.
Ustaw kolumnę CustomerID w tabeli Orders (Zamówienia) w oknie Źródła danych, aby użyć nowej kontrolki.
Utwórz formularz do wyświetlania danych w nowej kontrolce.
Wymagania wstępne
Do ukończenia tego samouczka potrzebne są obciążenia tworzenia aplikacji klasycznych platformy .NET oraz przechowywania i przetwarzania danych zainstalowanych w programie Visual Studio. Aby je zainstalować, otwórz Instalator programu Visual Studio i wybierz pozycję Modyfikuj (lub Więcej>modyfikacji) obok wersji programu Visual Studio, którą chcesz zmodyfikować. Zobacz Modyfikowanie programu Visual Studio.
W tym przewodniku użyto bazy danych SQL Server Express LocalDB i przykładowej bazy danych Northwind.
Jeśli nie masz bazy danych SQL Server Express LocalDB, zainstaluj ją ze strony pobierania programu SQL Server Express lub za pośrednictwem Instalator programu Visual Studio. W Instalator programu Visual Studio można zainstalować bazę danych SQL Server Express LocalDB w ramach obciążenia Magazynu i przetwarzania danych lub jako pojedynczy składnik.
Zainstaluj przykładową bazę danych Northwind, wykonując następujące kroki:
W programie Visual Studio otwórz okno Eksplorator obiektów programu SQL Server. (program SQL Server Eksplorator obiektów jest instalowany w ramach obciążenia Magazyn danych i przetwarzanie w Instalator programu Visual Studio). Rozwiń węzeł PROGRAMU SQL Server. Kliknij prawym przyciskiem myszy wystąpienie bazy danych LocalDB i wybierz pozycję Nowe zapytanie.
Zostanie otwarte okno edytora zapytań.
Skopiuj skrypt Northwind Transact-SQL do schowka. Ten skrypt języka T-SQL tworzy bazę danych Northwind od podstaw i wypełnia ją danymi.
Wklej skrypt języka T-SQL do edytora zapytań, a następnie wybierz przycisk Wykonaj .
Po krótkim czasie zapytanie zakończy działanie i zostanie utworzona baza danych Northwind.
Tworzenie projektu aplikacji Windows Forms
Pierwszym krokiem jest utworzenie projektu aplikacji Windows Forms App (.NET Framework).
W programie Visual Studio w menu Plik wybierz pozycję Nowy>projekt.
Rozwiń węzeł Visual C# lub Visual Basic w okienku po lewej stronie, a następnie wybierz pozycję Pulpit systemu Windows.
W środkowym okienku wybierz typ projektu Aplikacja Windows Forms.
Nadaj projektowi nazwę LookupControlWalkthrough, a następnie wybierz przycisk OK.
Projekt LookupControlWalkthrough jest tworzony i dodawany do Eksplorator rozwiązań.
Dodawanie kontrolki użytkownika do projektu
Ten przewodnik tworzy kontrolkę odnośnika z kontrolki użytkownika, dlatego dodaj element Kontrolka użytkownika do projektu LookupControlWalkthrough.
Z menu Project (Projekt) wybierz pozycję Add User Control (Dodaj kontrolkę użytkownika).
Wpisz
LookupBox
w obszarze Nazwa, a następnie wybierz pozycję Dodaj.Kontrolka LookupBox jest dodawana do Eksplorator rozwiązań i otwierana w projektancie.
Projektowanie kontrolki LookupBox
Aby zaprojektować kontrolkę LookupBox, przeciągnij element ComboBox z przybornika na powierzchnię projektową kontrolki użytkownika.
Dodawanie wymaganego atrybutu powiązania danych
W przypadku kontrolek odnośników obsługujących powiązanie danych można zaimplementować element LookupBindingPropertiesAttribute.
Przełącz kontrolkę LookupBox na widok kodu. (Na stronie Wyświetl menu, wybierz pozycję Kod).
Zastąp kod w pliku
LookupBox
następującym kodem:using System.Windows.Forms; namespace CS { [System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")] public partial class LookupBox : UserControl { public object DataSource { get{ return comboBox1.DataSource; } set{ comboBox1.DataSource = value; } } public string DisplayMember { get{ return comboBox1.DisplayMember; } set{ comboBox1.DisplayMember = value; } } public string ValueMember { get{ return comboBox1.ValueMember; } set{ comboBox1.ValueMember = value; } } public string LookupMember { get{ return comboBox1.SelectedValue.ToString(); } set{ comboBox1.SelectedValue = value; } } public LookupBox() { InitializeComponent(); } } }
W menu Kompilacja wybierz pozycję Kompiluj rozwiązanie.
Tworzenie źródła danych na podstawie bazy danych
Ten krok tworzy źródło danych przy użyciu kreatora Konfiguracji źródła danych na Customers
podstawie tabel i Orders
w przykładowej bazie danych Northwind.
Aby otworzyć okno Źródła danych, w menu Dane kliknij pozycję Pokaż źródła danych.
W oknie Źródła danych wybierz pozycję Dodaj nowe źródło danych, aby uruchomić kreatora konfiguracji źródła danych.
Wybierz pozycję Baza danych na stronie Wybierz typ źródła danych, a następnie wybierz pozycję Dalej.
Na stronie Wybieranie połączenia danych wykonaj jedną z następujących czynności:
Jeśli na liście rozwijanej jest dostępne połączenie danych z przykładową bazą danych Northwind, wybierz je.
Wybierz pozycję Nowe połączenie , aby uruchomić okno dialogowe Dodawanie/Modyfikowanie połączenia .
Jeśli baza danych wymaga hasła, wybierz opcję dołączenia poufnych danych, a następnie wybierz przycisk Dalej.
Na stronie Zapisz parametry połączenia w pliku konfiguracji aplikacji kliknij przycisk Dalej.
Na stronie Wybieranie obiektów bazy danych rozwiń węzeł Tabele .
Wybierz tabele
Customers
iOrders
, a następnie wybierz pozycję Zakończ.Zestaw NorthwindDataSet jest dodawany do projektu, a
Customers
tabele iOrders
są wyświetlane w oknie Źródła danych.
Ustaw kolumnę CustomerID tabeli Orders na używanie kontrolki LookupBox
W oknie Źródła danych możesz ustawić kontrolkę do utworzenia przed przeciągnięciem elementów do formularza.
Otwórz formularz Form1 w projektancie.
Rozwiń węzeł Klienci w oknie Źródła danych.
Rozwiń węzeł Zamówienia (jeden w węźle Klienci poniżej kolumny Faks).
Kliknij strzałkę listy rozwijanej w węźle Orders (Zamówienia) i wybierz pozycję Details (Szczegóły ) z listy kontrolnej.
Kliknij strzałkę listy rozwijanej w kolumnie CustomerID (w węźle Zamówienia ), a następnie wybierz pozycję Dostosuj.
Wybierz pozycję LookupBox z listy Skojarzonych kontrolek w oknie dialogowym Opcje dostosowywania interfejsu użytkownika danych.
Kliknij przycisk OK.
Kliknij strzałkę listy rozwijanej w kolumnie CustomerID i wybierz pozycję LookupBox.
Dodawanie kontrolek do formularza
Kontrolki powiązane z danymi można utworzyć, przeciągając elementy z okna Źródła danych do formularza Form1.
Aby utworzyć kontrolki powiązane z danymi w formularzu systemu Windows, przeciągnij węzeł Orders (Zamówienia) z okna Źródła danych na formularz systemu Windows i sprawdź, czy kontrolka LookupBox jest używana do wyświetlania danych w CustomerID
kolumnie.
Wiązanie kontrolki w celu wyszukania nazwy firmy z tabeli Customers
Aby skonfigurować powiązania odnośników, wybierz główny węzeł Klienci w oknie Źródła danych i przeciągnij go do pola kombi w polu kombi w polu CustomerIDLookupBox w formularzu Form1.
Spowoduje to skonfigurowanie powiązania danych w celu wyświetlenia CompanyName
wartości z Customers
tabeli przy zachowaniu CustomerID
Orders
wartości z tabeli.
Uruchamianie aplikacji
Naciśnij klawisz F5, aby uruchomić aplikację.
Przejdź przez niektóre rekordy i sprawdź, czy kontrolka
CompanyName
jest wyświetlana w kontrolceLookupBox
.