generierte Daten werden nicht in das DataSet übernommen.

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von schultzi.

    generierte Daten werden nicht in das DataSet übernommen.

    Hallo Zusammen,
    ich möchte generierte Daten in ein Dataset schreiben. Das Dataset ist typisiert, die Tabellen untereinander mit entsprechenden Key's verknüpft.
    Das ganze läuft mit einem DataSet und in einer xml-Datei gespeichert.
    In der MainForm sind alle Tabels über die Bindingsource in den DGV dargestellt.
    Die Daten werden wie folgt eingelesen:

    VB.NET-Quellcode

    1. ' So sollte es funtzen, tuts aber nicht...
    2. ' https://msdn.microsoft.com/de-de/library/5ycd1034.aspx
    3. #Const WithDataTable = True
    4. #If WithDataTable Then '
    5. Dim Kontoauszug As DsQbDt.DtKontoAuszugRow ' eine DtKontoAuszugRow erzeugen
    6. Kontoauszug = DsQbDt.DtKontoAuszug.NewDtKontoAuszugRow ' und diese auf eine neue KontoAuszugRow setzten
    7. #Else
    8. ' oder wie gehabt per DoppelCast eine typisierten KontoasuzugsRow erzeugen
    9. Dim KontoAuszug = DirectCast(DirectCast(DtKontoAuszugBindingSource.AddNew, DataRowView).Row, DtKontoAuszugRow)
    10. #End If
    11. With Kontoauszug
    12. .KontoID = lID
    13. .PdfFileName = FileName
    14. .Saldo = lSaldo
    15. .Datum = lDatum
    16. End With
    17. DsQbDt.DtKontoAuszug.AddDtKontoAuszugRow(Kontoauszug)
    18. MsgBox(" Es sind " & DsQbDt.DtKontoAuszug.Count.ToString & " KontoAuszüge importiert worden!", MsgBoxStyle.OkOnly)


    Wenn die MsgBox aufpopt sind alle Datensätze sichtbar und auch die Key-Werte stimmen. Nach drücken von Ok ist das DGV wieder leer =O , ebenso die Datatables ?( .
    Bei Eingabe der Daten von Hand werden die Daten behalten.

    Vielen Dank!
    Ich habe Deinen Code probiert (gezeigter Code in einer eigenen Prozedur mit 4 Parametern), dann läuft es. Ist da noch Prozedurcode, der relevant sein könnte?
    Btw: Warum nicht kurz

    VB.NET-Quellcode

    1. DsQbDt.DtKontoAuszug.AddDtKontoAuszugRow(lID, FileName, lSaldo, lDatum)

    Restanmerkungen: Ist es Absicht, dass Du deutsche und englische Begriffe mischst? Aber hey. Es ist Dein Code.
    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 schnelle Antwort.
    Ich werde das heute Abend testen ...
    wobei es mit nicht einleuchtet, warum die Daten im anderen Fall nicht übernommen werden ?!

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

    Anbei mein Testprojekt. Finde den relevanten Unterschied zu Deinem Projekt. Beachte den TheEasyWay-Flag im Code, der zwischen Deiner und meiner Variante unterscheidet. Mehr kann ich momentan nicht weiterhelfen.
    Dateien
    • WinForms1.zip

      (19,53 kB, 80 mal heruntergeladen, zuletzt: )
    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.
    So, nun konnnte ich das Ganze testen.... leider funktioniert es immer noch nicht wie es soll. Wahrscheinlich war ich zu sparsam mit den Informationen.
    Das DataSet umfasst 4 Tabels ( Eigentuemer, Konten, KontoAuszueg und Buchungen). Befüllt werden die Kontoauszüge und Buchungstabelle.
    Der dargestelllte Code hat nur die KontoAuszugstabelle befüllt; Eigentümer und Konten sind relativ fest, können aber erweiter werden.

    In der 3. Ebene, den KontoAuszuegen, schreibe ich die Informationen zu den Kontoauszügen rein, in der letzten Ebene der Buchungen die Buchungsinformationen.
    In dem MainForm sind 4 DGV die über die entsprechenden DataBindings dargestellt.

    Da das so nicht funktioniert, muss ich ein seperates Form aufmachen, der die Daten ohne Darstellung importiert bzw. eine Raw-View erstellt werden in dem dann die Tabels ohne Binding gefüllt werden.

    Vielen Dank an VaporiZed für die Arbeit !!
    Na mal langsam. Der Teil kommt mir verdächtig vor:

    schultzi schrieb:

    Da das so nicht funktioniert, muss ich ein seperates Form aufmachen, der die Daten ohne Darstellung importiert bzw. eine Raw-View erstellt werden in dem dann die Tabels ohne Binding gefüllt werden.
    Seh ich das richtig, dass Du die Daten in Form2 eingibst und sie dann nicht in Form1 zur Verfügung hast?
    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.
    Nein, ich habe nur Form1 indem alle 4 Tabellen über die Parent-Child verknüpft sind. Also hier
    Grandparent->Parent->Child->Grandchild.
    Ich schreibe mal eine kleine Form mit dem Problem und stelle die dann ein.
     ;( Das Testprogramm ist fertig ... und es tut genau das was es soll ;( .
    Jetzt fange ich am besten nochmal von Vorne an.

    Achso, wie füge ich eigentlich eine Datei in den Beitrag ein? - gefunden -> erweiterte Bearbeitung :sleeping:
    Dateien
    • Test.zip

      (334,28 kB, 66 mal heruntergeladen, zuletzt: )

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

    Ok, und was fängt man jetzt mit Deinem Projekt an? Was muss man machen, um den von Dir beobachteten Fehler zu reproduzieren?
    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.
    Das eigenliche Projekt liest aus PDF Dateien von der Bank die Buchungen aus. Diese werden soweit separiert, dass damit die einzelnen Felder in das DataSet eingetragen werden.
    Ich sicher mir den aktuellen Stand und werde die Befüllung des Dataset so einfach machen wie im Test-Projekt.
    Das wird aber ersteinmal bis WE dauern.

    Ich hatte die Helper-Routinen von EdR eingebaut und offensichtlich nicht richtig verstanden.
    Nachdem ich die Save, Reload und den Rest mit den "einfachen" Funtionsaufrufen ersetzt habe, läuft es :

    VB.NET-Quellcode

    1. Private Sub BtSave_Click(sender As Object, e As EventArgs) Handles BtSave.Click
    2. 'Save()
    3. DsQbDt.WriteXml(_XmlFile.FullName)
    4. End Sub


    Vielleicht finde ich noch eine Beschreibung der ganzen Helper-Funktionen.

    Vielen Dank nochmal und bis zum nächsten Problem :)


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