DataGridView bearbeiten von Einträge vor Anzeige

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

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Klexx.

    DataGridView bearbeiten von Einträge vor Anzeige

    Liebe Community,

    ich bin derzeit dran einen Terminkalender zu erstellen... Jedoch habe ich ein Problem woran ich seit Tagen
    sitze & hoffe Ihr könnt mir ein wenig weiterhelfen.

    Vorab ein paar Hinweise:
    - derTerminkalender ist an eine MySql-Datenbank gebunden,
    - die Termine werden in einem DataGridView angezeigt,
    - über die Funktion DataGridView.DataSource und einem DataTable lade ich die Termine dort rein.

    In der Datenbank stehen folgende Werte:
    StartDatum: 27.01.2020
    StartUhrzeit: 10:00 Uhr
    EndDatum: 29.01.2020
    EndUhrzeit: 17:30 Uhr

    Bisher funktioniert auch alles Super... Problematik ist wie folgt:

    Im DataGridView stelle ich nicht das Start- und EndDatum da sondern die Uhrzeit von Start und Ende.
    Wenn ich nun mit dem MonthCalendar auf den 27.01.2020 gehe, sollte die StartUhrzeit "10:00 Uhr" sein
    und die EndUhrzeit ein "-" stehen da das EndDatum ja erst 2 Tage später ist. Falls ich nun auf den 28.01.2020 gehe,
    muss Start- und EndUhrzeit ein "-" stehen da der Termin schon ein Tag alt ist und bis zum 29.01.2020 andauert.
    Im letzten Fall sollte bei StartUhrzeit ein "-" stehen und EndUhrzeit "17:30 Uhr" wenn ich auf den 29.01.2020 gehe.

    Daher muss ich die Daten vor Anzeige verarbeiten, dies habe ich bislang in einer ListView perfekt dargestellt.
    Jedoch komme ich bei dem DataGridView in verbindung mit DataSource und DataTable nicht weiter.

    Gibt es eine möglichkeit das über ein DataGridView zu lösen?

    Vielen Dank vorab für eure Mithilfe...

    Liebe Grüße,
    Klexx

    PS: Rechtschreibfehler sind die Specialeffects meiner Tastatur. :D
    Willkommen im Forum.

    Klar geht das. Ist nur ziemliches Rumgefrickel, weil es sich dann kaum lohnt, die Daten an das DGV zu binden, weil Du ja fast immer die Daten aufarbeiten musst. Auch das Schreiben ins DGV wird dann mit DataBinding (zumindest für die Uhrzeiten) ziemlich aufwendig. Die Datumsangaben solltest Du binden, die Uhrzeitspalten nicht. Die solltest Du manuell befüllen, indem Du mithilfe der Datenbank- bzw. DataTable-Einträge die gewünschten Daten generierst bzw. beim Schreiben/bei CellEndEdit passende DataTable-Daten erstellst. Gut, was man jetzt in ne DataTable einträgt, wenn der Benutzer bei Endzeit ein - einträgt, musst Du dann passend selbst festlegen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Vielen Dank für die Wilkommensgrüße @VaporiZed zudem Danke für die schnelle Antwort.

    Das Bearbeiten von Einträgen im DataGridView selbst ist nicht notwenig.
    Falls jemand einen Termin bearbeiten will habe ich das bereits über das DoubleClick Event gelöst (hat noch andere Grüne warum das so ist).

    Das Problem an der Ganzen sache ist, dass ich mit DataTable so gut wie noch nie gearbeitet habe und
    nicht genau weis, wie ich mich in diesem Fall von Bearbeiten von Einträgen verhalten soll.

    Hast du ggf. ein kleines Beispiel woran man sehen könnte wie ich das Ganze realisieren kann?

    Vielen Dank schonmal vorab.

    Liebe Grüße
    Klexx

    PS: Bin gerade nicht zuhause.... Ich schau später mal ob ich meinen Code mal posten kann.

    Klexx schrieb:

    habe es bereits gelöst.
    Lässt Du das Forum an Deiner Lösung teilhaben?
    Und:
    Du musst Deinen Thread schließen, doppelklicke dazu oben auf das abgerundete Quadrat neben dem Thread-Titel.
    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!
    Abend,

    grundsätzlich habe ich nix anderes gemacht als in Funktion 1 die Daten durch eine For Each Schleife
    auf zubereiten & in Funktion 2 die Daten in das DataGridView zu laden.

    Das Ganze passiert mit einem Array und dem DataSource Prinzip.

    Falls jemand mehr infos möchte kann er mich gerne anschreiben.

    Liebe Grüße,
    Klexx