Udostępnij za pośrednictwem


Tworzenie kontrolki użytkownika programu .NET Framework Windows Forms obsługującej złożone powiązanie danych za pomocą ADO.NET

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. Są one 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 na formularzach w aplikacjach systemu Windows można wybrać istniejące kontrolki z przybornika. Możesz też tworzyć kontrolki niestandardowe, jeśli aplikacja wymaga funkcji, które nie są dostępne w standardowych kontrolkach. W tym przewodniku pokazano, jak utworzyć kontrolkę, która implementuje element ComplexBindingPropertiesAttribute. Kontrolki implementujące ComplexBindingPropertiesAttribute właściwość i DataSourceDataMember , które mogą być powiązane z danymi. Takie kontrolki są podobne do kontrolek DataGridView lub ListBox.

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. (Ten proces jest opisany na tej stronie przewodnika).
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ść. Aby uzyskać więcej informacji, zobacz Tworzenie kontrolki użytkownika formularzy systemu Windows, która obsługuje powiązanie danych odnośników.

Ten przewodnik tworzy złożoną kontrolkę, która wyświetla wiersze danych z tabeli. W tym przykładzie użyto Customers tabeli z przykładowej bazy danych Northwind. Złożona kontrolka użytkownika wyświetli tabelę klientów w DataGridView kontrolce niestandardowej.

W tym przewodniku dowiesz się, jak wykonywać następujące działania:

  • Dodaj nową kontrolkę użytkownika do projektu.

  • Wizualnie projektuj kontrolkę użytkownika.

  • Zaimplementuj ComplexBindingProperty atrybut .

  • Tworzenie zestawu danych za pomocą Kreatora konfiguracji źródła danych.

  • Ustaw tabelę Customers (Klienci) w oknie Źródła danych, aby użyć nowej złożonej kontrolki.

  • Dodaj nową kontrolkę, przeciągając ją z okna Źródła danych do formularza Form1.

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.

  1. 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.

  2. Zainstaluj przykładową bazę danych Northwind, wykonując następujące kroki:

    1. 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ń.

    2. Skopiuj skrypt Northwind Transact-SQL do schowka. Ten skrypt języka T-SQL tworzy bazę danych Northwind od podstaw i wypełnia ją danymi.

    3. 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 dla języka C# lub Visual Basic. Nadaj projektowi nazwę ComplexControlWalkthrough.

Dodawanie kontrolki użytkownika do projektu

Ponieważ ten przewodnik tworzy złożoną kontrolkę powiązaną z danymi z kontrolki użytkownika, dodaj element Kontrolka użytkownika do projektu:

  1. Z menu Project (Projekt) wybierz pozycję Add User Control (Dodaj kontrolkę użytkownika).

  2. Wpisz ComplexDataGridView w obszarze Nazwa, a następnie kliknij przycisk Dodaj.

    Kontrolka ComplexDataGridView jest dodawana do Eksplorator rozwiązań i otwierana w projektancie.

Projektowanie kontrolki ComplexDataGridView

Aby dodać kontrolkę DataGridView użytkownika, przeciągnij element DataGridView z przybornika na powierzchnię projektową kontrolki użytkownika.

Dodawanie wymaganego atrybutu powiązania danych

W przypadku złożonych kontrolek obsługujących powiązanie danych można zaimplementować element ComplexBindingPropertiesAttribute:

  1. Przełącz kontrolkę ComplexDataGridView na widok kodu. (Na stronie Menu Wyświetl , wybierz pozycję Kod).

  2. Zastąp kod w pliku ComplexDataGridView następującym kodem:

    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
        public partial class ComplexDataGridView : UserControl
        {
            public object DataSource
            {
                get{ return dataGridView1.DataSource; }
                set{ dataGridView1.DataSource = value; }
            }
    
            public string DataMember
            {
                get{ return dataGridView1.DataMember; }
                set{ dataGridView1.DataMember = value; }
            }
    
            public ComplexDataGridView()
            {
                InitializeComponent();
            }
        }
    }
    
  3. W menu Kompilacja wybierz pozycję Kompiluj rozwiązanie.

Tworzenie źródła danych na podstawie bazy danych

Użyj Kreatora konfiguracji źródła danych, aby utworzyć źródło danych na Customers podstawie tabeli w przykładowej bazie danych Northwind:

  1. Aby otworzyć okno Źródła danych, w menu Dane kliknij pozycję Pokaż źródła danych.

  2. W oknie Źródła danych wybierz pozycję Dodaj nowe źródło danych, aby uruchomić kreatora konfiguracji źródła danych.

  3. Wybierz pozycję Baza danych na stronie Wybierz typ źródła danych, a następnie kliknij przycisk Dalej.

  4. Na stronie Wybieranie danych Połączenie ion 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ę Nowy Połączenie ion, aby uruchomić okno dialogowe Dodawanie/Modyfikowanie Połączenie ion.

  5. Jeśli baza danych wymaga hasła, wybierz opcję dołączenia poufnych danych, a następnie kliknij przycisk Dalej.

  6. Na stronie Zapisz parametry połączenia w pliku konfiguracji aplikacji kliknij przycisk Dalej.

  7. Na stronie Wybieranie obiektów bazy danych rozwiń węzeł Tabele .

  8. Wybierz tabelę Customers , a następnie kliknij przycisk Zakończ.

    Zestaw NorthwindDataSet jest dodawany do projektu, a Customers tabela zostanie wyświetlona w oknie Źródła danych.

Ustaw tabelę Customers na używanie kontrolki ComplexDataGridView

W oknie Źródła danych możesz ustawić kontrolkę do utworzenia przed przeciągnięciem elementów do formularza:

  1. Otwórz formularz Form1 w projektancie.

  2. Rozwiń węzeł Klienci w oknie Źródła danych.

  3. Kliknij strzałkę listy rozwijanej w węźle Klienci , a następnie wybierz pozycję Dostosuj.

  4. Wybierz widok ComplexDataGridView z listy Skojarzonych kontrolek w oknie dialogowym Opcje dostosowywania interfejsu użytkownika danych.

  5. Kliknij strzałkę listy rozwijanej w Customers tabeli, a następnie wybierz pozycję ComplexDataGridView z listy kontrolek.

Dodawanie kontrolek do formularza

Kontrolki powiązane z danymi można utworzyć, przeciągając elementy z okna Źródła danych na formularz. Przeciągnij główny węzeł Klienci z okna Źródła danych na formularz. Sprawdź, czy kontrolka ComplexDataGridView jest używana do wyświetlania danych tabeli.

Uruchamianie aplikacji

Naciśnij klawisz F5, aby uruchomić aplikację.

Następne kroki

W zależności od wymagań aplikacji można wykonać kilka kroków po utworzeniu kontrolki obsługującej powiązanie danych. Oto niektóre typowe następne kroki: