DGV mit ColumbBox aus anderer Tabelle

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

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von hans im glück.

    DGV mit ColumbBox aus anderer Tabelle

    Hallo zusammen,

    Ich Liste mit einem DGV verschiedenste Daten aus 2 Tabellen auf (Datengebunden mysql).
    Für die Tabellen übergreifende Auflistung verwende ich eine Combobox im DGV. Dies Funktioniert eigentlich ganz Ordentlich.
    Nur wenn in dieser Combobox keinen Wert steht weil in der Datenbank das Feld leer ist kommt folgender Fehler:
    System.ArgumentException: Der Datagridview ComboboxCell-wert ist ungültig.
    Behandeln sie das DataError-Ereignis,um dieses Standarddialogfeld zu ersetzten.
    (Das Datenfeld um das es sich handelt ist ein "Datetime" feld.

    Kann mir jemand helfen diesen Fehler zu beheben?

    Freundliche Grüsse


    Schnibli
    Ja ich hab ein dataset. In der Tabelle der Combobox ist bei Datum AllowDBNUll auf True.
    An dem kann es nicht liegen:s

    Den Code? ich habe die Combobox mittels DataGrid Aufgaben gelöst (oben rechts im Datagridview)

    schnibli schrieb:

    AllowDBNUll auf True


    geh mal die tabelle vorher durch mit for each schleife und setze irgendein standard datum wenn dbnull ist.
    ich hatte das auch schon ein paar mal dass er meckert obwohl AllowDBNUll auf true ist.
    Gruß Hannes
    bin unterwegs daher frei übersetzt und ungetestet

    VB.NET-Quellcode

    1. for each rw as dts.tablerow in dts.table
    2. if isdbnull(rw.datum) then
    3. rw.datum = #11/07/2016#
    4. end if
    5. next


    edit: ist ja bestimmt klar, aber : dts = dein dataset, table = deine tabelle
    Gruß Hannes
    Vielen dank für deine Bemühung.
    Ich konnte nun das Problem genauer Lokalisieren, es liegt nicht daran das kein Datum eingetragen ist sondern,
    das kein Datensatz zugeordnet werden kann weil noch kein Datensatz existiert. Kann man diesen Fall behandeln? :s
    Würde es gehen nur Datensätze Abzufragen, die schon einen Eintrag in Tabelle 2 haben? :s

    Meine Jetzige Abfrage:

    Quellcode

    1. ​FROM tblAnlagenNr as t1 LEFT OUTER JOIN
    2. (SELECT COUNT(*) as Count, AnlagenNr from tblAlgemeinEinsaetze where Datum > CONVERT('2016-01-01',date) AND Datum < CONVERT('2016-12-31',date) AND einsatz_id = '1' GROUP BY AnlagenNr) as t2 ON t1.AnlagenNr = t2.AnlagenNr
    3. WHERE t2.Count < t1.anzahl_service or t2.count IS NULL AND t1.anzahl_service > 0 AND AuftragsDatum < CONVERT('2016-01-01',date)"
    sorry mit dem sql gedöhns überforderst du mich da ich auch das tabellendesign nicht kenne und auf basis dieser sql abfrage auch nicht verstehe.

    einen datensatz fügst du auf jeden fall (zur laufzeit) mit dts.deineTabelle.adddeineTabellerow(Spalte1, Spalte2, Spalte 3) hinzu.

    was ich dir aber noch als tipp geben kann:

    du holst dir ja die daten offensichtlich untypisiert aus ner db, sonst hättest du ja deinen tableadapter oder dataadapter.

    ich habe bei solchen geschichten dann eine tabelle zur laufzeit angelegt und die informationen mit der o.g. addtblrow in mein typ ds übergeben.
    dann stehen dir im designer alle bequemlichkeiten zur verfügung.
    Gruß Hannes

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hans im glück“ ()