2 DataGridView-Controls parallel

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

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

    2 DataGridView-Controls parallel

    Hallo,
    ​Ich habe 2 DataGridView-Controls, die beide jeweils an eine DataTable gebunden sind. In das 2. DataGridView-Control würde ich gerne die Daten eingeben lassen, die für den Nutzer nicht sichtbar sein sollen.
    ​Die 2. DataGridView soll also parallel mit der 1. erweitert und verkleinert werden. Die TataTables werden in XML gespeichert und geladen. Ich habe keine Idee, wie ich dies angehen soll. Mit der DataTable oder der DataGridView arbeiten? Oder gibt es bessere Möglichkeiten Daten, die bei jede Zelle verschieden sind, zu transportieren.

    Hier ein Beispiel:
    Tabelle 1
    ​Data 1 Data 2
    Data1a Data 2a
    Data 1b Data 2b
    Data 1c Data 2c
    ​... ...

    Tabelle 2
    Data 1 Data 2
    ​Info zu 1aInfo zu 2a
    Info zu 1bInfo zu 2b
    ​Info zu 1cInfo zu 2c
    ​... ...
    Hast du jetzt 2 unabhängige Tabellen?
    Nach deinen Angaben jetzt schon...
    Kommt mir jetzt zu deinen obigen Sätzen wiedersprüchlich vor...
    Ich könnte mir vorstellen, wenn ich dich richtig verstanden habe, alles in einer Tabelle unterzubringen. Man kann auch mit 2 DGV's über verschiedene BS auf eine Tabelle zugreifen...

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

    1 mal DataGridView mit einer DataTable und dann noch eine DataGridView mit einer anderen DataTable verbunden.
    ​Wichtig ist halt nur, dass ich in DataGridView2 Zusatzinformationen einer Zelle habe zu einer Zelle in der 1. DataGridView.
    ​Die Zusatzinformationen also die 2. DGV sind für den Nutzer nicht sichtbar.
    Ok, das riecht mal wieder nach Workaround. Denn du beschreibst hier eher einen Kompromiss eines Kompromisses welchen du nicht hinbekommen hast. Was hast du genau vor bzw. ist das Ziel?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

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

    kingsunil2000 schrieb:

    die für den Nutzer nicht sichtbar sein sollen
    Nimm nur ein DGV und mach die betreffenden Spalten unsichtbar:

    VB.NET-Quellcode

    1. DataGridView1.Columns(3).Visible = False

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    VB.NET-Quellcode
    DataGridView1.Columns(3).Visible = False


    Darüber habe ich natürlich auch schon nachgedacht, Spalten unsichtbar zu machen. Allerdings wird die 1. DataTable später in eine neue DataGridView kopiert. Hier könnte man dann nicht mehr zwischen Daten und Zusatzinformationen unterscheiden.
    ​Am liebsten würde ich die Tag-Eigenschaft für jede Zelle anpassen, jedoch wird dieser beim Speichern und Laden mit ReadXML und WriteXML nicht mitgespeichert.

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

    kingsunil2000 schrieb:

    Allerdings wird die 1. DataTable später in eine neue DataGridView kopiert.
    Vielleicht postest Du mal ne vollständige Aufgabenstellung / Problembeschreibung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @kingsunil2000 Das nennst Du

    RodFromGermany schrieb:

    vollständige Aufgabenstellung / Problembeschreibung
    :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    mrMo schrieb:

    Was hast du genau vor bzw. ist das Ziel?
    ... wurde leider immer noch nicht beantwortet. Ist auch das, was @RodFromGermany gerne wissen möchte um zu helfen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    *Zusatzinformationen (Autokorrektur)

    Ich habe noch keine anderen Wege ausprobiert, außer den Weg den ich jetzt versuche. Am liebsten hätte ich gerne, dass ich die Zusatzfunktionen an den Tag einer Zelle binde und diese dann mit WriteXML gespeichert werden. Dies ist jedoch nicht möglich oder kann ich das ganze irgendwie anders abspeichern und laden? Aktuell habe ich 2 DataTables die beim Start an jeweils eine DataGridView gebunden werden. Wenn man die Zusatzinformationen, die in der 2. DataTable enthalten sind editiert, tritt meist ein Fehler auf. Ich möchte also wissen wie ich WEG-1. den tag der jeweiligen Zelle abspeichere oder WEG-2 wie ich dafür sorge, dass beide DataTables immer gleich viele Zeilen haben, sodass keine Fehler mit den Indices auftreten. Wie gesagt werden die Informationen der ersten DataTable später an eine 3. DataGridView kopiert, sodass dann die Zusatzinformationen nicht mehr von Bedeutung sind. Schön wäre es natürlich beide zu haben, was bei 2 DataTables auch der Fall ist, allerdings haben die Zusatzinformationen auch eine geringere Priorität, sodass ich nicht die Spalten der Zusatzinformationen in nur eine DataTable machen könnte.

    ​Ich möchte die Daten in DataTable1 haben und Beschreibung zu allen Daten in DataTable2.

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

    @kingsunil2000
    Vielleicht fehlen Dir ein paar Grundlagen.
    Schau Dir mal die Videos auf die vier Views auf Video an, danach wird Dir vieles klarer sein, auch wie man seine Daten als XML speichert und von dort lädt.
    Danach sollte die "Autokorrektur" überflüssig sein.

    kingsunil2000 schrieb:

    ​Ich möchte die Daten in DataTable1 haben und Beschreibung zu allen Daten in DataTable2.
    Jo, und das ist ein falsches DatenDesign, und deshalb tut man sich schwer dir zu helfen, denke ich.

    ZusatzInformationen sind auch Daten, und Zusatzinformationen zu Daten gehören in dieselbe Tabelle wie die Daten.

    Du kannst gerne 2, 3, 5 DatagridViews dran anbinden, und jedes zeigt andere Spalten der(selben) Daten an.
    Aber die Daten lass bitte zusammen.
    Ich weiß nicht, ich versteh das Problem weiterhin nicht.

    Da langt doch eine DataTable mit allen Infos. Grid 1 zeigt halt nicht alle Spalten an da Grid 2 diese Spalten anzeigt.

    Ah ok. Kann es sein, das zu einem Datensatz mehrere Datensätze(Zusatzinfos) gehören? Also pro Row, gibt es mehrere "Info-Rows"? In dem Fall, hilft es mit einem DataSet zu arbeiten. Davor dann die Videos anschauen, die @us477 dir nahe gelegt hat.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @us4711 Videos angeschaut. Habe jetzt ein DataSet mit einer DataTable die eine Relation mit einer anderen DataTable mit den Zusatzinformationen hat.

    @ErfinderDesRades Ich weiß und stimme der Meinung absolut zu, aber wie soll ich denn sonst die klaren Unterschiede zwischen Daten und deren Zusatzinformationen klar machen?

    @mrMo Die Sache ist nicht nur, dass man pro Zelle diese Informationen hat und nicht pro Zeile.

    Als Beispiel: Zeile(0) Spalte(0)
    Zusatzinfo1 = "exampleString"
    Zusatzinfo2 = True
    Zusatzinfo3 = 64

    Da die Spalten benutzerdefiniert sind, gehen andere Versuche nicht so leicht, wie Zusatzinfos und Daten in eine DataTable zu bringen, weshalb ich glaube gut mit dem DataSet unterwegs bin. Oder gibt es andere Vorschläge?
    Also hat jede Zelle eigene Zusatzinformationen in unbestimmter Anzahl?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @kingsunil2000
    Bitte LÖSE Dich von der Vorstellung, das in Deinem DataGridView Daten GEHALTEN werden. Dies geschieht in der Tat in der Datatable des Datasets.
    Das Datagridview ist nur für die DARSTELLUNG dieser Daten zuständig.
    Datenhaltung im DGV ist BÖSE. Hierzu gibts im Forum etliche Threads, in den ausführlich begründet wird.
    @mrMo es gibt zusatzinfos, die sind vorgegeben und es gibt welche unbestimmt sind, sodass der Nutzer auch selbst was hinzufügen kann. Bisher habe ich diese Zusatzinfos dann versucht in eine 2. DataTable an der selben stelle zu schreiben und später dann voneinander zu splitten. Dies ist jedoch glaube ich unprofessionell oder sollte man es lieber so machen um einen besseren Überblick zu erhalten?

    ​@us4711 Weiß ich.