Datagridview in mehrere Datatables übergeben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datagridview in mehrere Datatables übergeben

    Hallo zusammen,

    ich habe folgendes Problem:

    Ich habe eine Form erstellt, in der der User über verschiedene Eingaben (ComboBox und Textfeld) Daten eingeben kann. Die Daten werden jeweils über die Erstellung einer neuen Zeile in das Datagridview eingefügt, d.h. der User füllt diese Felder (ComboBox und Textfelder) aus und klickt dann auf "Zeile einfügen". Damit wird eine neue Zeile in das DGV eingefügt.
    Wenn der User fertig ist, sollen diese Daten übernommen werden (z.B. als "Layout 1", so dass der User die nächste Tabelle erstellen kann (z.B. Layout 2). Die jeweils erstellten Tabellen sollen für die Weiterverarbeitung definiert sein, so dass man sowohl "Layout 1" als auch "Layout 2" für andere Zwecke übernehmen kann. Ich meine hier nicht das Abspeichern an sich (z.B. als XML-File") sondern die Speicherung im Arbeitsspeicher für die Nutzung während der Ausführung des Programms.

    Wenn ich das Datagridview mit einem Datatable verknüpfe, bekomme ich eine Fehlermeldung, sobald ich eine Zeile hinzufügen möchte.

    Hat jemand eine Idee?

    Beste Grüße und vielen Dank im Voraus.

    Tobias
    Ich finde das Vorgehen sehr bedenklich.

    Das führende an einem gebundenen DGV ist die DataTable - damit sind die Spalten vorgegeben.
    Da den User mit dran rumkonfigurieren lassen - naja siehste ja, da entstehen schnell Fehler.

    Die Konfiguration einer ComboColumn ist auch sehr anspruchsvoll - das soll der Entwickler machen.

    Ich hab den Ansatz "Multi-DGV" für verschiedene DataTables schon längers aufgegeben.
    Bei mir wird jedes DGV an eine DataTable gebunden - das wird im Form-Designer eingerichtet, und dieses Design/Konfiguration zur Laufzeit nicht geändert (allenfalls marginal, zb. Column.Visible)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    OK, das Vorgehen ist aber grundsätzlich erstmal unabdingbar, weil es eben dem User überlassen sein soll, wie viele Daten (also Zeilen) er eingeben möchte.

    Beispiel: Der User soll die Möglichkeit haben, diverse Ladestationen für Elektroautos in einer Stadt einzugeben. Über die Combobox1 kann er auswählen, um was für eine Station es sich handelt. In die TextBox1 und 2 kann er die Koordinaten der Ladestation eingeben (Hoch und Rechtswert) und in Textbox 3 wie viele Anschlüsse dort zur Verfügung stehen. Wenn er alle Stationen in einer Stadt eingegeben hat, klickt er auf "übernehmen" und die Stadt ist abgespeichert. Nun wird es in Hamburg mehr Stationen geben als in Uetersen. Ich möchte die Daten aber nicht in eine Datenbank eingeben, sondern jede Stadt als Datentabelle (Layoit) gespeichert haben. Das Datagridview (zumindest die Anzahl der Zeilen, nicht die Überschriften oder die Spalten) muss also zur Laufzeit definiert bzw. erweitert werden.

    VBB schrieb:

    Ich möchte die Daten aber nicht in eine Datenbank eingeben, sondern jede Stadt als Datentabelle (Layoit) gespeichert haben.
    Das klingt mir sehr nach einem fundamentalen Fehler im Aufbau des Datenmodells in der Datenbank.
    Was du darauf aufzubauen versuchst wird allerhöchstwahrscheinlich scheitern.