Freigeben über


Übersicht über die Datenbindung mit Windows Forms

In Windows Forms können Sie nicht nur an herkömmliche Datenquellen, sondern auch an fast jede Struktur binden, die Daten enthält. Sie können eine Bindung an ein Array von Werten erstellen, die Sie zur Laufzeit berechnen, aus einer Datei lesen oder von den Werten anderer Steuerelemente ableiten.

Darüber hinaus können Sie jede Eigenschaft eines beliebigen Steuerelements an die Datenquelle binden. In herkömmlicher Datenbindung binden Sie in der Regel die Anzeigeeigenschaft ( z. B. die Text Eigenschaft eines TextBox Steuerelements ) an die Datenquelle. Mit .NET haben Sie auch die Möglichkeit, andere Eigenschaften über bindung festzulegen. Sie können die Bindung verwenden, um die folgenden Aufgaben auszuführen:

  • Festlegen der Grafik eines Bildsteuerelements.

  • Festlegen der Hintergrundfarbe eines oder mehrerer Steuerelemente.

  • Festlegen der Größe von Steuerelementen.

Im Wesentlichen ist die Datenbindung eine automatische Möglichkeit zum Festlegen einer Laufzeitzugriffseigenschaft eines Steuerelements in einem Formular.

mit ADO.NET können Sie viele verschiedene Datenstrukturen erstellen, die den Bindungsanforderungen Ihrer Anwendung und den Daten entsprechen, mit der Sie arbeiten. Möglicherweise möchten Sie eigene Klassen erstellen, die Daten in Windows Forms bereitstellen oder nutzen. Diese Objekte können unterschiedliche Funktionalitäts- und Komplexitätsebenen bieten. Von der grundlegenden Datenbindung bis hin zur Bereitstellung von Entwurfszeitunterstützung, Fehlerüberprüfung, Änderungsbenachrichtigung oder sogar Unterstützung für ein strukturiertes Rollback der an den Daten vorgenommenen Änderungen selbst.

Verbraucher von Datenbindungsschnittstellen

In den folgenden Abschnitten werden zwei Gruppen von Schnittstellenobjekten beschrieben. Die erste Gruppe von Schnittstellen wird von Datenquellenautoren auf Datenquellen implementiert. Die Datenquellen-Consumer wie die Windows Forms-Steuerelemente oder -Komponenten implementieren diese Schnittstellen. Die zweite Gruppe der Schnittstelle ist für die Verwendung durch Komponentenautoren konzipiert. Komponentenautoren verwenden diese Schnittstellen, wenn sie eine Komponente erstellen, die die Datenbindung unterstützt, die vom Windows Forms-Datenbindungsmodul verwendet werden soll. Sie können diese Schnittstellen in Klassen implementieren, die Ihrem Formular zugeordnet sind, um die Datenbindung zu aktivieren. Jeder Fall stellt eine Klasse dar, die eine Schnittstelle implementiert, die die Interaktion mit Daten ermöglicht. Visual Studio-Werkzeuge für schnelle Anwendungsentwicklung (RAD) und Datenentwurfserfahrung nutzen diese Funktionalität bereits.

Schnittstellen für die Implementierung durch Datenquellenautoren

Die Windows Forms-Steuerelemente implementieren die folgenden Schnittstellen:

  • IList-Schnittstelle

    Eine Klasse, die die IList Schnittstelle implementiert, kann ein Array, ArrayList oder CollectionBase. Hierbei handelt es sich um indizierte Listen von Elementen vom Typ Object , und die Listen müssen homogene Typen enthalten, da das erste Element des Indexes den Typ bestimmt. IList wäre nur zur Laufzeit für die Bindung verfügbar.

    Hinweis

    Wenn Sie eine Liste von Geschäftsobjekten für die Bindung mit Windows Forms erstellen möchten, sollten Sie BindingList<T> in Betracht ziehen. Dies BindingList ist eine erweiterbare Klasse, die die primären Schnittstellen implementiert, die für die bidirektionale Windows Forms-Datenbindung erforderlich sind.

  • IBindingList-Schnittstelle

    Eine Klasse, die die IBindingList Schnittstelle implementiert, bietet eine wesentlich höhere Ebene von Datenbindungsfunktionen. Diese Implementierung bietet Ihnen grundlegende Sortierfunktionen und Änderungsbenachrichtigungen. Beide sind nützlich, wenn sich die Listenelemente ändern und wenn sich die Liste selbst ändert. Die Änderungsbenachrichtigung ist wichtig, wenn Sie beabsichtigen, mehrere Steuerelemente an dieselben Daten gebunden zu haben. Sie können Datenänderungen vornehmen, die in einem der Steuerelemente vorgenommen wurden, um sie an die anderen gebundenen Steuerelemente zu verteilen.

    Hinweis

    Die Änderungsbenachrichtigung wird für die IBindingList Schnittstelle über die SupportsChangeNotification Eigenschaft aktiviert, die, wenn true, ein ListChanged Ereignis auslöst und angibt, dass die Liste geändert wurde oder ein Element in der Liste geändert wurde.

    Der Typ der Änderung wird durch die ListChangedType Eigenschaft des ListChangedEventArgs Parameters beschrieben. Jedes Mal, wenn das Datenmodell aktualisiert wird, werden alle abhängigen Ansichten, z. B. andere Steuerelemente, die an dieselbe Datenquelle gebunden sind, ebenfalls aktualisiert. Objekte, die in der Liste enthalten sind, müssen die Liste jedoch benachrichtigen, wenn sie sich ändern, damit die Liste das ListChanged Ereignis auslösen kann.

    Hinweis

    Dies BindingList<T> stellt eine generische Implementierung der IBindingList Schnittstelle bereit.

  • IBindingListView-Schnittstelle

    Eine Klasse, die die IBindingListView Schnittstelle implementiert, bietet alle Funktionen einer Implementierung von IBindingList, zusammen mit Filter- und erweiterten Sortierfunktionen. Diese Implementierung bietet eine zeichenfolgenbasierte Filterung und eine mehrspaltige Sortierung mit Eigenschaftsdeskriptor-Richtungspaaren.

  • IEditableObject-Schnittstelle

    Eine Klasse, die die IEditableObject Schnittstelle implementiert, ermöglicht es einem Objekt zu steuern, wann Änderungen an diesem Objekt dauerhaft vorgenommen werden. Diese Implementierung unterstützt die BeginEditMethoden und EndEditCancelEdit Methoden, mit denen Sie Änderungen, die am Objekt vorgenommen wurden, rückgängig machen können. Nachfolgend finden Sie eine kurze Erläuterung der Funktionsweise der BeginEditMethoden EndEditund CancelEdit Methoden und deren Zusammenarbeit, um ein mögliches Rollback von Änderungen zu ermöglichen, die an den Daten vorgenommen wurden:

    • Die BeginEdit Methode signalisiert den Beginn einer Bearbeitung für ein Objekt. Ein Objekt, das diese Schnittstelle implementiert, muss alle Updates nach dem BeginEdit Methodenaufruf so speichern, dass die Updates verworfen werden können, wenn die CancelEdit Methode aufgerufen wird. In der Datenbindung von Windows Forms können Sie BeginEdit mehrmals innerhalb des Rahmens einer einzelnen Bearbeitungstransaktion aufrufen (zum Beispiel BeginEdit, BeginEdit, EndEdit). Implementierungen von IEditableObject sollten verfolgen, ob BeginEdit bereits aufgerufen wurde, und nachfolgende Aufrufe von BeginEdit ignorieren. Da diese Methode mehrmals aufgerufen werden kann, ist es wichtig, dass nachfolgende Aufrufe daran nicht destruktiv sind. Nachfolgende BeginEdit Aufrufe können die vorgenommenen Aktualisierungen nicht zerstören oder die Daten ändern, die beim ersten BeginEdit Anruf gespeichert wurden.

    • Die EndEdit Methode verschiebt alle Änderungen seit BeginEdit dem Aufruf in das zugrunde liegende Objekt, wenn sich das Objekt derzeit im Bearbeitungsmodus befindet.

    • Die CancelEdit Methode verwirft alle Am Objekt vorgenommenen Änderungen.

    Weitere Informationen darüber, wie die Methoden BeginEdit, EndEdit und CancelEdit funktionieren, finden Sie unter Speichern von Daten in die Datenbank.

    Dieser transaktionsale Begriff der Datenfunktionalität wird vom DataGridView Steuerelement verwendet.

  • ICancelAddNew-Schnittstelle

    Eine Klasse, die in der Regel die ICancelAddNew Schnittstelle implementiert, implementiert normalerweise die IBindingList Schnittstelle und ermöglicht es Ihnen, ein Rollback einer Änderung der Datenquelle über die AddNew Methode durchzuführen. Wenn Ihre Datenquelle die IBindingList Schnittstelle implementiert, sollten Sie auch die ICancelAddNew Schnittstelle implementieren.

  • IDataErrorInfo-Schnittstelle

    Eine Klasse, die die IDataErrorInfo Schnittstelle implementiert, ermöglicht Objekten das Bereitstellen von benutzerdefinierten Fehlerinformationen an gebundene Steuerelemente:

    • Die Error Eigenschaft gibt allgemeinen Fehlermeldungstext zurück (z. B. "Ein Fehler ist aufgetreten").

    • Die Item[] Eigenschaft gibt eine Zeichenfolge mit der spezifischen Fehlermeldung aus der Spalte zurück (z. B. "Der Wert in der State Spalte ist ungültig").

  • IEnumerable-Schnittstelle

    Eine Klasse, die die IEnumerable Schnittstelle implementiert, wird in der Regel von ASP.NET verwendet. Die Windows Forms-Unterstützung für diese Schnittstelle ist nur über die BindingSource Komponente verfügbar.

    Hinweis

    Die BindingSource Komponente kopiert alle IEnumerable Elemente zu Bindungszwecken in eine separate Liste.

  • ITypedList-Schnittstelle

    Eine Auflistungsklasse, die die ITypedList Schnittstelle implementiert, stellt das Feature bereit, um die Reihenfolge und den Satz von Eigenschaften zu steuern, die für das gebundene Steuerelement verfügbar gemacht werden.

    Hinweis

    Wenn Sie die GetItemProperties Methode implementieren und das PropertyDescriptor Array nicht NULL ist, ist der letzte Eintrag im Array der Eigenschaftsdeskriptor, der die Listeneigenschaft beschreibt, die eine andere Liste von Elementen ist.

  • ICustomTypeDescriptor-Schnittstelle

    Eine Klasse, die die ICustomTypeDescriptor Schnittstelle implementiert, stellt dynamische Informationen zu sich selbst bereit. Diese Schnittstelle ist ähnlich, ITypedList wird jedoch für Objekte anstelle von Listen verwendet. Diese Schnittstelle wird von DataRowView verwendet, um das Schema der zugrunde liegenden Zeilen zu projizieren. Eine einfache Implementierung von ICustomTypeDescriptor wird von der CustomTypeDescriptor Klasse bereitgestellt.

    Hinweis

    Um die Entwurfszeitbindung an Typen, die ICustomTypeDescriptor implementieren, zu unterstützen, muss der Typ auch IComponent implementieren und als Instanz im Formular vorhanden sein.

  • IListSource-Schnittstelle

    Eine Klasse, die die IListSource Schnittstelle implementiert, ermöglicht die listenbasierte Bindung für Nicht-Listenobjekte. Die Methode GetList von IListSource wird verwendet, um eine bindbare Liste aus einem Objekt zurückzugeben, das nicht von IList erbt. IListSource wird von der DataSet Klasse verwendet.

  • IRaiseItemChangedEvents-Schnittstelle

    Eine Klasse, die die IRaiseItemChangedEvents Schnittstelle implementiert, ist eine bindungsfähige Liste, die auch die IBindingList Schnittstelle implementiert. Diese Schnittstelle wird verwendet, um anzugeben, ob Ihr Typ ListChanged-Ereignisse vom Typ ItemChanged über seine RaisesItemChangedEvents-Eigenschaft auslöst.

    Hinweis

    Wenn Ihre Datenquelle die Eigenschaft zum Auflisten der zuvor beschriebenen Ereigniskonvertierung bereitstellt und mit der IRaiseItemChangedEvents-Komponente interagiert, sollten Sie BindingSource implementieren. Andernfalls führt die BindingSource Eigenschaft auch die Listenereigniskonvertierung aus, was zu einer langsameren Leistung führt.

  • ISupportInitialize-Schnittstelle

    Eine Komponente, die die ISupportInitialize Schnittstelle implementiert, nutzt Vorteile von Batchoptimierungen zum Festlegen von Eigenschaften und initialisieren koabhängige Eigenschaften. Dies ISupportInitialize enthält zwei Methoden:

    • BeginInit signalisiert, dass die Objektinitialisierung gestartet wird.

    • EndInit signalisiert, dass die Objektinitialisierung beendet ist.

  • ISupportInitializeNotification-Schnittstelle

    Eine Komponente, die die ISupportInitializeNotification Schnittstelle implementiert, implementiert auch die ISupportInitialize Schnittstelle. Mit dieser Schnittstelle können Sie andere ISupportInitialize Komponenten benachrichtigen, dass die Initialisierung abgeschlossen ist. Die ISupportInitializeNotification Schnittstelle enthält zwei Mitglieder:

  • INotifyPropertyChanged-Schnittstelle

    Eine Klasse, die diese Schnittstelle implementiert, ist ein Typ, der ein Ereignis auslöst, wenn sich eine seiner Eigenschaftswerte ändert. Diese Schnittstelle wurde so konzipiert, dass das Muster eines Änderungsereignisses für jede Eigenschaft eines Steuerelements ersetzt wird. Bei Verwendung in einem BindingList<T>Geschäftsobjekt sollte die INotifyPropertyChanged Schnittstelle implementiert werden, und die BindingList'1 konvertiert PropertyChanged Ereignisse in ListChanged Ereignisse vom Typ ItemChanged.

    Hinweis

    Damit die Änderungsbenachrichtigung in einer Bindung zwischen einem gebundenen Client und einer Datenquelle auftritt, sollte der gebundene Datenquellentyp entweder die INotifyPropertyChanged Schnittstelle (bevorzugt) implementieren oder Sie können propertyName-EreignisseChanged für den gebundenen Typ bereitstellen, aber nicht beides.

Schnittstellen für die Implementierung durch Komponentenautoren

Die folgenden Schnittstellen sind für den Verbrauch durch das Windows Forms-Datenbindungsmodul ausgelegt:

  • IBindableComponent-Schnittstelle

    Eine Klasse, die diese Schnittstelle implementiert, ist eine Nicht-Steuerelementkomponente, die die Datenbindung unterstützt. Diese Klasse gibt die Datenbindungen und den Bindungskontext der Komponente über die Eigenschaften DataBindings und BindingContext dieser Schnittstelle zurück.

    Hinweis

    Wenn Ihre Komponente von Controlerbt, müssen Sie die IBindableComponent Schnittstelle nicht implementieren.

  • ICurrencyManagerProvider-Schnittstelle

    Eine Klasse, die die ICurrencyManagerProvider Schnittstelle implementiert, ist eine Komponente, die ihr eigenes CurrencyManager bereitstellt, um die Bindungen zu verwalten, die mit dieser bestimmten Komponente verbunden sind. Der Zugriff auf das benutzerdefinierte CurrencyManager wird von der CurrencyManager eigenschaft bereitgestellt.

    Hinweis

    Eine Klasse, die von Control erbt, verwaltet Bindungen automatisch über ihre BindingContext-Eigenschaft, sodass es relativ selten notwendig ist, das ICurrencyManagerProvider zu implementieren.

Von Windows Forms unterstützte Datenquellen

Traditionell wurde die Datenbindung in Anwendungen verwendet, um die in Datenbanken gespeicherten Daten zu nutzen. Mit der Datenbindung von Windows Forms können Sie auf Daten aus Datenbanken und Daten in anderen Strukturen zugreifen, z. B. Arrays und Sammlungen, solange bestimmte Mindestanforderungen erfüllt sind.

Strukturen, an die gebunden werden kann

In Windows Forms können Sie eine Bindung an eine Vielzahl von Strukturen vornehmen, von einfachen Objekten (einfache Bindung) bis hin zu komplexen Listen wie ADO.NET Datentabellen (komplexe Bindung). Für einfache Bindung unterstützen Windows Forms die Bindung an die öffentlichen Eigenschaften für das einfache Objekt. Für die listenbasierte Bindung von Windows Forms ist in der Regel erforderlich, dass das Objekt die IList Schnittstelle oder die IListSource Schnittstelle unterstützt. Wenn Sie eine Bindung mit einer BindingSource Komponente durchführen, können Sie außerdem eine Bindung an ein Objekt erstellen, das die IEnumerable Schnittstelle unterstützt.

In der folgenden Liste sind die Strukturen aufgeführt, an die Sie in Windows Forms binden können.

  • BindingSource

    Ein BindingSource ist die am häufigsten verwendete Windows Forms-Datenquelle und fungiert als Proxy zwischen einer Datenquelle und Windows Forms-Steuerelementen. Das allgemeine BindingSource-Verwendungsmuster besteht darin, die Steuerelemente an die BindingSource zu binden und die BindingSource an die Datenquelle zu binden (z. B. eine ADO.NET-Datentabelle oder ein Geschäftsobjekt). BindingSource stellt Dienste bereit, die die Datenbindung ermöglichen und deren Unterstützung verbessern. Windows Forms-Steuerelemente, die listenbasiert sind, wie DataGridView und ComboBox, unterstützen keine direkte Bindung an IEnumerable-Datenquellen. Sie können jedoch dieses Szenario ermöglichen, indem Sie eine Bindung über eine BindingSource herstellen. In diesem Fall konvertiert BindingSource die Datenquelle in eine IList.

  • Einfache Objekte

    Windows Forms unterstützt die Datenbindung von Steuerelementeigenschaften an öffentliche Eigenschaften einer Objektinstanz mithilfe des Binding Typs. Windows Forms unterstützt auch Steuerelemente, die auf Bindungslisten basieren, wie z. B. ein ListControl an ein Objekt, wenn ein BindingSource verwendet wird.

  • Array oder Sammlung

    Um als Datenquelle zu fungieren, muss eine Liste die IList Schnittstelle implementieren; Ein Beispiel wäre ein Array, das eine Instanz der Array-Klasse ist. Weitere Informationen zu Arrays finden Sie unter Wie man ein Array von Objekten erstellt (Visual Basic).

    Im Allgemeinen sollten Sie BindingList<T> verwenden, wenn Sie Listen von Objekten für die Datenbindung erstellen. BindingList ist eine generische Version der IBindingList Schnittstelle. Die IBindingList Schnittstelle erweitert die IList Schnittstelle, indem Eigenschaften, Methoden und Ereignisse hinzugefügt werden, die für die bidirektionale Datenbindung erforderlich sind.

  • IEnumerable

    Windows Forms-Steuerelemente können an Datenquellen gebunden werden, die die IEnumerable Schnittstelle nur unterstützen, wenn sie über eine BindingSource Komponente gebunden sind.

  • ADO.NET Datenobjekte

    ADO.NET bietet viele Datenstrukturen, die für die Bindung geeignet sind. Jeder variiert in seiner Raffinesse und Komplexität.

    • DataColumn

      A DataColumn ist der wesentliche Baustein eines DataTable, in dem mehrere Spalten eine Tabelle umfassen. Jede DataColumn verfügt über eine DataType-Eigenschaft, die die Art der Daten bestimmt, die in der Spalte enthalten sind (z. B. die Marke eines Automobils in einer Tabelle, die Autos beschreibt). Sie können ein Steuerelement (z. B. die TextBox-Eigenschaft eines Text-Steuerelements) einfach an eine Spalte in einer Datentabelle binden.

    • DataTable

      Eine DataTable ist die Darstellung einer Tabelle mit Zeilen und Spalten in ADO.NET. Eine Datentabelle enthält zwei Auflistungen: DataColumn, die die Datenspalten in einer bestimmten Tabelle darstellen (die letztendlich die Arten von Daten bestimmen, die in diese Tabelle eingegeben werden können) und DataRow, die die Datenzeilen in einer bestimmten Tabelle darstellen. Sie können ein Steuerelement komplex an die Informationen binden, die in einer Datentabelle enthalten sind (z. B. das Binden des DataGridView-Steuerelements an eine Datentabelle). Wenn Sie sich jedoch an eine DataTableBindung binden, sind Sie eine Bindung an die Standardansicht der Tabelle.

    • DataView

      Ein DataView ist eine angepasste Ansicht einer einzelnen Datentabelle, die gefiltert oder sortiert werden kann. Eine Datenansicht ist eine „Momentaufnahme“ der Daten, die von komplex gebundenen Steuerelementen verwendet wird. Sie können die Daten in einer Datenansicht einfach binden oder komplex binden. Beachten Sie jedoch, dass Sie eine Bindung an ein festes "Bild" der Daten anstelle einer sauberen, aktualisierenden Datenquelle erstellen.

    • DataSet

      Ein DataSet ist eine Sammlung von Tabellen, Beziehungen und Einschränkungen der Daten in einer Datenbank. Sie können einfach oder komplex an die Daten in einem Dataset binden, beachten Sie jedoch, dass Sie an die Standardeinstellung DataViewManager für die DataSet binden (siehe nächsten Aufzählungspunkt).

    • DataViewManager

      Ein DataViewManager ist eine angepasste Ansicht des gesamten DataSet analog zu einer DataView, allerdings mit einbezogenen Beziehungen. Mit einer DataViewSettings-Auflistung können Sie Standardfilter und Sortierungsoptionen für alle Ansichten festlegen, die DataViewManager für eine bestimmte Tabelle bietet.

Datenbindungstypen

Windows Forms kann zwei Arten von Datenbindung nutzen: einfache Bindung und komplexe Bindung. Jede bietet unterschiedliche Vorteile.

Typ der Datenbindung BESCHREIBUNG
Einfache Datenbindung Die Möglichkeit eines Steuerelements zum Binden an ein einzelnes Datenelement, z. B. einen Wert in einer Spalte in einer Datasettabelle. Einfache Datenbindung ist der Typ der Bindung, die typisch für Steuerelemente wie ein TextBox Steuerelement oder Label Steuerelement ist, bei denen es sich um Steuerelemente handelt, die in der Regel nur einen einzelnen Wert anzeigen. Tatsächlich kann jede Eigenschaft eines Steuerelements an ein Feld in einer Datenbank gebunden werden. Es gibt umfangreiche Unterstützung für dieses Feature in Visual Studio.

Weitere Informationen finden Sie unter Navigieren in Daten und Erstellen eines einfachen gebundenen Steuerelements (Windows Forms .NET).
Komplexe Datenbindung Die Möglichkeit eines Steuerelements zum Binden an mehrere Datenelemente, in der Regel mehr als ein Datensatz in einer Datenbank. Komplexe Bindung wird auch als listenbasierte Bindung bezeichnet. Beispiele für Steuerelemente, die komplexe Bindung unterstützen, sind die Steuerelemente DataGridView, ListBox und ComboBox. Ein Beispiel für eine komplexe Datenbindung finden Sie unter How to: Bind a Windows Forms ComboBox or ListBox Control to Data.

Bindungsquellkomponente

Um die Datenbindung zu vereinfachen, können Sie in Windows Forms eine Datenquelle an die BindingSource Komponente binden und dann Steuerelemente an die BindingSourceKomponente binden. Sie können das BindingSource in einfachen oder komplexen Bindungsszenarien verwenden. In beiden Fällen fungiert der BindingSource als Vermittler zwischen der Datenquelle und den gebundenen Steuerungen und bietet Dienstleistungen wie Änderungsbenachrichtigung, Management und andere Verwaltungsaufgaben an.

Häufige Szenarien mit Datenbindung

Fast jede kommerzielle Anwendung verwendet Informationen, die aus Datenquellen eines Typs oder einer anderen gelesen werden, in der Regel durch Datenbindung. In der folgenden Liste sind einige der am häufigsten verwendeten Szenarien aufgeführt, in denen die Datenbindung als Methode der Datenpräsentation und -manipulation verwendet wird.

Szenario BESCHREIBUNG
Berichterstattung Berichte bieten eine flexible Möglichkeit, um Ihre Daten in einem gedruckten Dokument anzuzeigen und zusammenzufassen. Es ist üblich, einen Bericht zu erstellen, der ausgewählte Inhalte einer Datenquelle entweder auf dem Bildschirm oder auf einem Drucker druckt. Allgemeine Berichte umfassen Listen, Rechnungen und Zusammenfassungen. Elemente werden in Listenspalten formatiert, wobei Unterelemente unter jedem Listenelement angeordnet sind, Sie sollten jedoch das Layout auswählen, das am besten zu den Daten passt.
Dateneintrag Eine gängige Methode zum Eingeben großer Mengen verwandter Daten oder um Benutzer nach Informationen zu fragen, ist ein Dateneingabeformular. Benutzer können Informationen eingeben oder Auswahlmöglichkeiten mithilfe von Textfeldern, Optionsfeldern, Dropdownlisten und Kontrollkästchen auswählen. Anschließend werden Informationen in einer Datenbank übermittelt und gespeichert, deren Struktur auf den eingegebenen Informationen basiert.
Master-Detail-Beziehung Eine Master-/Detailanwendung ist ein Format für die Suche nach verwandten Daten. Insbesondere gibt es zwei Datentabellen mit einer Beziehung, die im klassischen Geschäftsbeispiel verbunden ist, eine Tabelle "Kunden" und eine Tabelle "Bestellungen" mit einer Beziehung zwischen ihnen, die Kunden und ihre jeweiligen Bestellungen verknüpft. Weitere Informationen zum Erstellen einer Master-/Detailanwendung mit zwei Windows Forms-Steuerelementen DataGridView finden Sie unter How to: Create a Master/Detail Form Using Two Windows Forms DataGridView Controls.
Nachschlagetabelle Ein weiteres gängiges Datenpräsentations-/Manipulationsszenario ist die Tabellensuche. Häufig wird als Teil einer größeren Datenanzeige ein ComboBox Steuerelement zum Anzeigen und Bearbeiten von Daten verwendet. Der Schlüssel besteht darin, dass sich die im ComboBox Steuerelement angezeigten Daten von den daten unterscheiden, die in die Datenbank geschrieben wurden. Wenn Sie beispielsweise über ein ComboBox Steuerelement verfügen, das die in einem Lebensmittelgeschäft verfügbaren Elemente anzeigt, möchten Sie wahrscheinlich die Namen der Produkte (Brot, Milch, Eier) sehen. Um jedoch das Abrufen von Informationen innerhalb der Datenbank und für die Datenbanknormalisierung zu vereinfachen, würden Sie die Informationen für die spezifischen Elemente einer bestimmten Bestellung als Elementnummern (#501, #603 usw.) speichern. Daher gibt es eine implizite Verbindung zwischen dem "Anzeigenamen" des Lebensmittelartikels im Steuerelement ComboBox auf Ihrem Formular und zur zugehörigen Artikelnummer, die in einer Bestellung vorhanden ist. Es ist das Wesen einer Tabellensuche. Weitere Informationen finden Sie unter So erstellen Sie eine Nachschlagetabelle mit der Windows Forms BindingSource-Komponente.

Siehe auch