Harlequin: [C#/WinForms/SQL] DataViewGrid und ForeignKeys

Beitrag lesen

Yerf!

  • Ich hol mir aus der Datenbank die Namen anstelle der IDs und Joine beim Speichern über alle beteiligten Tabellen um wieder die IDs einfügen zu können (Performance, Aufwand?)

Das Feld mit Join oder in deinem Fall besser mit korrelierter Subquery hinzuzuholen, ist eine Methode, wenn du nur anzeigen willst.

Das Problem ist, das die DataTable schlussendlich nicht nur zum Anzeigen verwendet wird, sondern die Rows in ihr auch bearbeitet und wieder in die Datenbank zurückgeschrieben werden (allerdings nicht über einen angebundenen Adapter sondern über eigene Methoden die die Events der DataTable abfangen)

  • Ich hol mir Namen und IDs aus der Datenbank und blende die ID-Spalten aus. Beim ändern eines Datensatzes muss ich beide Spalten synchron halten da ich Namen anzeige und ID speichere (gangbarer Weg oder auch Murks?)

Nicht nötig.

Aber wie speichere ich dann nach einer Änderung ab? Beim Speichern Joins/Subquerys verwenden wie in Vorschlag 1? Oder wie stell ich die Beziehung zwischen Name und ID her, die Lookuptabelle für die Comboboxen nehmen? (wobei ich dann zum Value den Key suchen müsste im Dictionary...)

  • Ich bekomm es irgendwie hin dem DVG die Beziehungen zu erklären... (geht das irgendwie?)

Was hältst du vom Spaltentyp DataGridViewComboBoxColumn?

Aber wie versorg ich den mit Daten? Ich hab da nichts vernünftiges im Netz gefunden (außer Enums, aber die kann ich nicht fest definieren, siehe letzter Punkt). Wobei ich in der Liste keine Combobox brauch, das DataGridView ist nur für die Anzeige (editieren über eigene Maske für einen Datensatz), aber die DataTable dahinter muss ich bearbeiten, da darüber das Speichern der Änderungen läuft (außer ich schmeiß das ganze Konzept nochmal um... würd ich aber ungern machen, weils ansonsten gut läuft)

  • weils mir grad beim tippen noch so einfällt: kann man in C# ENUMS dynamisch erstellen und wäre das ein möglicher Weg?

Vielleicht mit Reflection. Ist aber sicher zu aufwendig oder hat andere Nachteile.

War nur so eine Idee ob ich auf den Weg beide Informationen (ID und Text) in einer Column speichern kann. Die Enums fest im Code hinterlegen geht nicht, weil sich der Inhalt der Tabelle ändern kann.

Gruß,

Harlequin

--
RIP --- XHTML 2
nur die Besten sterben jung