Was wäre der einfachste Weg, um einen schnellen Editor für einige Daten in der Datenbank in WPF/WinForms zu erstellen, wo die Daten durch eine Ansicht in der SQL Server-Datenbank dargestellt werden?Wie erstellt man Editor für die Datenbankansicht (mit Joins) in Windows Forms/WPF?
Angenommen, ich habe eine Tabelle Person { id int, name nvarchar(max), GenderID int, CityID int}
, wobei GenderID und CityID eine Referenz in Tabellen Geschlecht und Stadt ist. Im Editor würde die Person als Textbox für Name, Combobox für Geschlecht (Auswahl der Geschlechter aus der Gender-Tabelle) und für die Stadtsäule erscheinen.
Gibt es etwas Einfaches, das ich tun kann, so etwas Kontrolle/Code würde dies erzeugen? Wenn ich nur Daten auswählen möchte, können WinForms DataGridView oder WPF DataGrid eine Spalte für jede Eigenschaft generieren und eine Zeile für jedes Objekt in einer Auflistung anzeigen. -
Gibt es eine ähnliche magische Kontrolle, die dies für eine Datenbankansicht tun könnte, wenn die Beziehungen durch einen Fremdschlüssel definiert sind?
Es scheint mir, dass Tausende von Entwicklern mit dieser Art von Problem konfrontiert wurden - um schnell eine GUI zum Bearbeiten von Datenbankzeilen mit Beziehungen zu anderen Tabellen zu erstellen, so sollte es eine allgemein akzeptierte Lösung sein. Oder macht das jeder im Code? Oder, wenn es ein Tool dafür in einer anderen Sprache gibt, nicht C#, nicht Windows Forms - wie dBase.
sind Sie sich der DataGridView.AutoGenerateColumns Eigentum? (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.autogenetratecolumns.aspx). Es macht eine Menge Dinge automatisch, und Sie können es anpassen, indem Sie das DataGridView irgendwie überschreiben. –
Ich bin, und es funktioniert gut für das Durchsuchen der Daten, aber es löst kein Problem für die Bearbeitung von Daten – Axarydax
Ich glaube, es sollte die Bearbeitung auch unterstützen, vorausgesetzt es "denkt", dass Ihre Datenquelle editierbar ist. Bitte erläutern Sie in Ihrer Frage, welche Art von Datenquelle Sie bereitstellen. –