Listen, List of

  • VB.NET
  • .NET (FX) 4.0

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Listen, List of

    Moinsen Zusammen,

    Private Shared myNewList As New List(Of xxxDataSet.yyyRow)
    Private Shared myS As xxxDataSet.yyyRow
    Private Shared myDS = frmMain.xxxDataSet

    dann gehts in Füllroutine:
    myS = myDS.yyy.NewyyyRow
    myS.ID = myList(0, i)
    myS.Name = myList(1, i)
    myNewList.Add(myS)

    //Bemerkung: hier ist alles gut, die Liste wird gefüllt, im Debugger sichtbar.

    Dann geht es weiter, Daten sammeln und am Ende in DB speichern. Bei ersten Zugriff mit:
    Dim tbh = myDS.yyy
    For i As Integer = 0 To myNewList.Count - 1
    myDS.yyy.NewyyyRow() //// hier kommt der Fehler, der Counter wird noch richtig ausgelesen
    tbh.Rows.Add(myNewList(i))
    Next

    //Bemerkung: Fehler: DBnull kann nicht mit String konvertiert werden. Im Debugger ist nix mehr drin.
    die Liste wird sonst nicht verwendet.

    so: ich brauche Licht

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „KielerSprotte“ ()

    CodeTags wären schön gewesen, dann ließe sich auch von Dir angeben, in welcher Zeile der Fehler kommt. Aber wenn er kommt, dann zeigt der Debugger doch, was genau das Problem ist. Wenn die Fehlermeldung wie o.g. lautet, dann erwartet die DB an einer Stelle einen String. Du lieferst DbNull. Es ist die Frage, ob das nicht abwendbar ist. Warum ist der jeweilige Wert DbNull? Er kann ja nur entsprechend von der DB so eingelesen worden sein. Wenn an der Stelle in der DB aber Nothing o.ä. steht und das DataSet in jener Tabellenspalte den Wert in ein DbNull konvertiert (kommt drauf an, welcher Datentyp die DataTable im DataSet in jener Spalte festgelegt wurde), kommt beim Zurückschreiben in die DB jener Fehler.
    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.