Übersicht über die Datenbindung (Windows Forms .NET)
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 an ein Array von Werten binden, die zur Laufzeit berechnet werden, aus einer Datei gelesen oder von den Werten anderer Steuerelemente abgeleitet werden.
Darüber hinaus können Sie jede Eigenschaft eines beliebigen Steuerelements an die Datenquelle binden. In herkömmlicher Datenbindung binden Sie normalerweise 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.
Schnittstellen im Zusammenhang mit der Datenbindung
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 selbst an den Daten vorgenommenen Änderungen.
Verbraucher von Datenbindungsschnittstellen
In den folgenden Abschnitten werden zwei Gruppen von Schnittstellenobjekten beschrieben. Die erste Schnittstellengruppe wird von Datenquellenautoren auf den 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-Tools für die schnelle Anwendungsentwicklung (RAD) und das Design von Datenerfahrungen 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, ArrayListoder CollectionBasesein. 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.Anmerkung
Wenn Sie eine Liste von Geschäftsobjekten für die Bindung mit Windows Forms erstellen möchten, sollten Sie die Verwendung der BindingList<T>in Betracht ziehen. Die
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 Datenbindungsfunktionalität. 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. Es hilft Ihnen, Datenänderungen, die in einem der Steuerelemente vorgenommen wurden, automatisch auf die anderen verbundenen Steuerelemente zu übertragen.
Anmerkung
Die Änderungsbenachrichtigung wird für die IBindingList-Schnittstelle über die Eigenschaft SupportsChangeNotification aktiviert. Diese löst, wenn
true
, ein ListChanged-Ereignis aus, das angibt, dass die Liste geändert wurde oder ein Element in der Liste geändert wurde.Der Änderungstyp 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.
Anmerkung
Die BindingList<T> bietet eine generische Implementierung der IBindingList Schnittstelle.
IBindingListView-Schnittstelle
Eine Klasse, die die IBindingListView Schnittstelle implementiert, bietet alle Funktionen einer Implementierung von IBindingListsowie Filter- und erweiterte Sortierfunktionen. Diese Implementierung bietet Zeichenfolgenbasierte Filterung und 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 Methoden BeginEdit, EndEditund CancelEdit, mit denen Sie Änderungen zurücksetzen können, die an dem Objekt vorgenommen wurden. Nachfolgend finden Sie eine kurze Erläuterung der Funktionsweise der
BeginEdit
,EndEdit
undCancelEdit
Methoden und deren Zusammenarbeit miteinander, 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 nach dem Aufruf der
BeginEdit
Methode alle Aktualisierungen so speichern, dass die Updates verworfen werden können, wenn die CancelEdit-Methode aufgerufen wird. In der Datenbindung von Windows Forms können SieBeginEdit
mehrmals während einer einzigen Bearbeitungstransaktion aufrufen (z. B.BeginEdit
,BeginEdit
, EndEdit). Implementierungen von IEditableObject sollten verfolgen, obBeginEdit
bereits aufgerufen wurde und nachfolgende Aufrufe vonBeginEdit
ignorieren. Da diese Methode mehrmals aufgerufen werden kann, ist es wichtig, dass nachfolgende Aufrufe daran nicht destruktiv sind. NachfolgendeBeginEdit
Anrufe können die vorgenommenen Aktualisierungen nicht zerstören oder die Daten ändern, die im erstenBeginEdit
Anruf gespeichert wurden.Die EndEdit-Methode überträgt alle Änderungen seit BeginEdit aufgerufen wurde in das zugrunde liegende Objekt, wenn das Objekt sich derzeit im Bearbeitungsmodus befindet.
Die CancelEdit-Methode verwirft alle Am Objekt vorgenommenen Änderungen.
Weitere Informationen dazu, wie die methoden BeginEdit, EndEditund CancelEdit funktionieren, finden Sie unter Speichern von Daten in der Datenbank.
Dieser transaktionale Begriff der Datenfunktionalität wird vom Steuerelement DataGridView verwendet.
ICancelAddNew-Schnittstelle
Eine Klasse, die die ICancelAddNew-Schnittstelle implementiert, implementiert in der Regel auch die IBindingList-Schnittstelle und ermöglicht es, eine Ergänzung in der Datenquelle mit der AddNew-Methode zurückzusetzen. Wenn Ihre Datenquelle die
IBindingList
-Schnittstelle implementiert, sollten Sie auch dieICancelAddNew
-Schnittstelle implementieren.IDataErrorInfo-Schnittstelle
Eine Klasse, die die IDataErrorInfo-Schnittstelle implementiert, ermöglicht Objekten das Bereitstellen von benutzerdefinierten Fehlerinformationen an gebundene Steuerelemente:
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 komponente BindingSource verfügbar.
Anmerkung
Die BindingSource Komponente kopiert alle IEnumerable Elemente zu Bindungszwecken in eine separate Liste.
ITypedList-Schnittstelle
Eine Auflistungsklasse, die die ITypedList-Schnittstelle implementiert, bietet die Möglichkeit, die Reihenfolge und den Satz von Eigenschaften zu steuern, die dem gebundenen Steuerelement zur Verfügung stehen.
Anmerkung
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 weitere Liste von Elementen ist.
ICustomTypeDescriptor-Schnittstelle
Eine Klasse, die die ICustomTypeDescriptor Schnittstelle implementiert, stellt dynamische Informationen über sich selbst bereit. Diese Schnittstelle ist mit ITypedList vergleichbar, 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.Anmerkung
Zur Unterstützung der Entwurfszeitbindung an Typen, die ICustomTypeDescriptorimplementieren, 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 GetList Methode von
IListSource
wird verwendet, um eine bindungsfähige Liste aus einem Objekt zurückzugeben, das nicht von IListerbt.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 dient dazu anzugeben, ob ein Typ ListChanged-Ereignisse vom Typ ItemChanged über seine RaisesItemChangedEvents-Eigenschaft auslöst.
Anmerkung
Sie sollten die IRaiseItemChangedEvents implementieren, wenn Ihre Datenquelle die Funktion zum Auflisten der zuvor beschriebenen Ereigniskonvertierung bereitstellt und mit der BindingSource-Komponente interagiert. Andernfalls führt die
BindingSource
auch eine Umwandlung von Eigenschaft in ein Listenereignis durch, was zu einer verringerten Leistung führt.ISupportInitialize-Schnittstelle
Eine Komponente, die die ISupportInitialize-Schnittstelle implementiert, nutzt die Vorteile von Batch-Optimierungen zum Festlegen von Eigenschaften und zum Initialisieren ko-abhängiger Eigenschaften. Die
ISupportInitialize
enthält zwei Methoden: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. DieISupportInitializeNotification
-Schnittstelle enthält zwei Elemente:IsInitialized gibt einen
boolean
Wert zurück, der angibt, ob die Komponente initialisiert wird.Initialized tritt auf, wenn EndInit aufgerufen wird.
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>sollte ein Geschäftsobjekt die INotifyPropertyChanged-Schnittstelle implementieren, wobei das BindingList`1 PropertyChanged-Ereignisse in ListChanged-Ereignisse vom Typ ItemChangedkonvertiert.
Anmerkung
Damit es zu einer Änderungsbenachrichtigung in einer Bindung zwischen einem gebundenen Client und einer Datenquelle kommt, sollte Ihr gebundener Datenquellentyp entweder die INotifyPropertyChanged-Schnittstelle implementieren (bevorzugt) oder Sie können -Eigenschaftsname-
Changed
-Ereignisse für den gebundenen Typ bereitstellen, aber Sie sollten nicht beides tun.
Schnittstellen für die Implementierung durch Komponentenautoren
Die folgenden Schnittstellen sind für die Nutzung durch den Windows Forms-Datenbindungsmotor 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.
Anmerkung
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 eigene CurrencyManager zum Verwalten der Bindungen bereitstellt, die dieser bestimmten Komponente zugeordnet sind. Der Zugriff auf die benutzerdefinierte
CurrencyManager
wird von der CurrencyManager-Eigenschaft bereitgestellt.Anmerkung
Eine Klasse, die von Control erbt, verwaltet Bindungen automatisch über die BindingContext-Eigenschaft, sodass Fälle, in denen Sie die ICurrencyManagerProvider implementieren müssen, ziemlich selten sind.
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 zum Binden an
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 einfaches Datenbinden unterstützen Windows Forms die Bindung an die öffentlichen Eigenschaften eines einfachen Objekts. 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.
-
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
Nutzungsmuster besteht darin, die Steuerelemente an dieBindingSource
zu binden und dieBindingSource
an die Datenquelle zu binden (z. B. eine ADO.NET-Datentabelle oder ein Geschäftsobjekt). DieBindingSource
stellt Dienste bereit, die die Datenbindungsunterstützung ermöglichen und verbessern. Beispielsweise unterstützen listenbasierte Windows Forms-Steuerelemente wie DataGridView und ComboBox nicht direkt die Bindung an IEnumerable-Datenquellen. Sie können dieses Szenario jedoch ermöglichen, indem Sie über einBindingSource
binden. In diesem Fall konvertiert dieBindingSource
die Datenquelle in eine IList. Einfache Objekte
Windows Forms unterstützen die Bindung von Steuerelementeigenschaften an öffentliche Eigenschaften einer Objektinstanz mithilfe des Typs Binding. Windows Forms unterstützt auch bindungslistenbasierte Steuerelemente, wie z. B. eine ListControl an eine Objektinstanz, 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. DieIBindingList
Schnittstelle erweitert die IList Schnittstelle, indem Eigenschaften, Methoden und Ereignisse hinzugefügt werden, die für die bidirektionale Datenbindung erforderlich sind.-
Windows Forms-Steuerelemente können an Datenquellen gebunden werden, die nur die IEnumerable-Schnittstelle 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.
-
Ein DataColumn ist der wesentliche Baustein eines DataTable, in dem mehrere Spalten eine Tabelle umfassen. Jede
DataColumn
hat eine DataType-Eigenschaft, die die Art der Daten bestimmt, die die Spalte enthält (z. B. die Automarke in einer Tabelle, die Autos beschreibt). Sie können ein Steuerelement (wie die Text Eigenschaft eines TextBox Steuerelements) einfach an eine Spalte in einer Datentabelle binden. -
Ein DataTable ist die Repräsentation 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 jedoch eine Bindung an eine
DataTable
festlegen, sind Sie eine Bindung an die Standardansicht der Tabelle. -
Ein DataView ist eine angepasste Ansicht einer einzelnen Datentabelle, die gefiltert oder sortiert werden kann. Ein Datenansicht ist eine Momentaufnahme der Daten, die von komplexen 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.
-
Ein DataSet ist eine Sammlung von Tabellen, Beziehungen und Einschränkungen der Daten in einer Datenbank. Sie können einzelne Daten in einem Dataset binden oder komplexere Bindungen vornehmen. Beachten Sie jedoch, dass eine Bindung an die Standard-DataViewManager für
DataSet
erfolgt (siehe den nächsten Aufzählungspunkt). -
Ein DataViewManager ist eine angepasste Ansicht der gesamten DataSet, entspricht einem DataView, aber mit eingeschlossenen Beziehungen. Mit einer DataViewSettings -Auflistung können Sie Standardfilter und Sortieroptionen für alle Ansichten festlegen, die der
DataViewManager
für eine bestimmte Tabelle hat.
-
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 Fähigkeit eines Steuerelements, sich an ein einzelnes Datenelement zu binden, z. B. einen Wert in einer Spalte in einer Datensatz-Tabelle. Einfache Datenbindung ist der Typ der Bindung, die typisch für Steuerelemente wie ein TextBox-Steuerelement oder Label-Steuerelement ist. Dabei handelt es sich um Steuerelemente, die normalerweise 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 Fähigkeit eines Steuerelements, sich mit mehr als einem Datenelement zu verbinden, typischerweise mit mehr als einem 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, ListBoxund ComboBox. Ein Beispiel für eine komplexe Datenbindung finden Sie unter So binden Sie ein Windows Forms ComboBox- oder ListBox-Steuerelement an Daten. |
Quellkomponente der Bindung
Um die Datenbindung zu vereinfachen, können Sie in Windows Forms eine Datenquelle an die komponente BindingSource binden und dann Steuerelemente an die BindingSource
binden. Sie können die BindingSource
in einfachen und komplexen Bindungsszenarien verwenden. In beiden Fällen fungiert die BindingSource
als Vermittler zwischen der Datenquelle und gebundenen Steuerelementen und bietet die Verwaltung von Änderungsbenachrichtigungen, Währungsverwaltung und anderen Diensten 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. |
Dateneingabe | Eine gängige Möglichkeit zum Eingeben großer Mengen verwandter Daten oder um Benutzer nach Informationen zu fragen, ist die Verwendung eines Dateneingabeformulars. 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, die im klassischen Geschäftsbeispiel miteinander verbunden sind: eine "Kunden"-Tabelle und eine "Bestellungen"-Tabelle, mit einer Beziehung zwischen ihnen, die Kunden mit ihren jeweiligen Bestellungen verknüpft. Weitere Informationen zum Erstellen einer Master-/Detailanwendung mit zwei Windows Forms DataGridView-Steuerelementen finden Sie unter So erstellen Sie ein Master/Detail-Formular mit zwei Windows Forms DataGridView-Steuerelementen. |
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 ist, dass die im ComboBox -Steuerelement angezeigten Daten anders sind als die Daten, die in die Datenbank geschrieben wurden. Wenn Sie z. B. ü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 "freundlichen Namen" des Lebensmittelartikels im ComboBox -Steuerelement auf Ihrem Formular und der zugehörigen Artikelnummer, die in einer Bestellung enthalten ist. Es ist der Kern einer Tabellensuche. Weitere Informationen finden Sie unter So erstellen Sie eine Nachschlagetabelle mit der Windows Forms BindingSource-Komponente. |
Siehe auch
.NET Desktop feedback