Tabelle wird nicht aktualisiert

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von GünterD.

    Tabelle wird nicht aktualisiert

    Hallo Zusammen,

    hat einer von euch eine Idee warum mit u.a. Code die Aktualisierung der ersten Tabelle "tbl_ArtikelStammdaten" funktioniert und bei der 2. Tabelle "Tbl_KundenListe" nichts in der MSSQL-DB ankommt?
    Eine Fehlermeldung gibt's nicht.

    VB.NET-Quellcode

    1. Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. Me.Tbl_KundenListeTableAdapter.Fill(Me.TechDBDataSet.tbl_KundenListe)
    3. Me.Tbl_ArtikelStammdatenTableAdapter.Fill(Me.TechDBDataSet.tbl_ArtikelStammdaten)
    4. Me.SAP_KundenartikelTableAdapter.Fill(Me.TechDBDataSet.SAP_Kundenartikel)
    5. End Sub
    6. Private Sub SAPImport_Click(sender As Object, e As EventArgs) Handles SAPImport.Click
    7. For Each dr As DataRow In Me.TechDBDataSet.SAP_Kundenartikel.Rows
    8. 'Suchen ob Datensatz mit itemcode=SAPNr bereits vorhanden
    9. Dim IndexA As Integer = Tbl_ArtikelStammdatenBindingSource.Find("SAPNr", dr.Item("itemcode").ToString)
    10. If (IndexA = -1) Then 'wenn Datensatz fehlt --> rgänzen
    11. Dim ArtikelNeu = DirectCast(DirectCast(Tbl_ArtikelStammdatenBindingSource.AddNew, DataRowView).Row, techDBDataSet.tbl_ArtikelStammdatenRow)
    12. ArtikelNeu.ArtikelVorgänger = dr.Item("Artikelbeschreibung").ToString
    13. Me.Tbl_ArtikelStammdatenBindingSource.EndEdit() 'Editiervorgang abschließen
    14. Me.TableAdapterManager.UpdateAll(Me.TechDBDataSet) '<---- Funktioniert und Daten kommen in SQL-Tabelle an
    15. End If
    16. Next
    17. 'tbl_KundenListe aktualisieren
    18. For Each drK As DataRow In Me.TechDBDataSet.SAP_Kundenartikel.Rows
    19. 'Suchen ob Datensatz mit cardcode = bereits vorhanden
    20. Dim IndexK As Integer = Tbl_KundenListeBindingSource.Find("SAPcardcode", drK.Item("Cardcode").ToString)
    21. If IndexK = -1 Then 'wenn Datensatz fehlt --> ergänzen
    22. Dim KundeNeu = DirectCast(DirectCast(Tbl_KundenListeBindingSource.AddNew, DataRowView).Row, techDBDataSet.tbl_KundenListeRow)
    23. KundeNeu.SAPCardCode = drK.Item("CardCode").ToString
    24. Me.Tbl_KundenListeBindingSource.EndEdit() 'Editiervorgang abschließen
    25. Me.TableAdapterManager.UpdateAll(Me.TechDBDataSet) '<---- Funktioniert NICHT und Daten kommen NICHT in SQL-Tabelle an
    26. End If
    27. Next
    28. end sub


    Im Voraus bereits Danke für eure Tipps.

    *Topic verschoben*
    Gruß Günter

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @GünterD Überzeuge Dich davon, dass die Form_Load vollständig abgearbeitet wird.
    Wenn es da nämlich knallt, kann es sein, dasser da einfach rausfliegt und außen weiter macht.
    Mach als letzten Befehl ne MessageBox rein und warte auf die.
    Wenn sie nicht kommt, setz auf den ersten Befehl einen Haltepunkt und stepp die Form_Load durch.
    Debuggen, Fehler finden und beseitigen
    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!
    Fein!

    Dein Code ist aber sehr sehr suboptimal und lässt fast sämtliche Features, die das typDataset dir bietet unbeachte.
    Quasi untypsiert isser.
    Würdest du Verbesserungsvorschläge annehmen?
    Hat allerdings nur Sinn, wenn du dich mittm typDataset, und wie man dagegen codet, wirklich auseinander setzen willst.
    siehe typed programming the typed Dataset