DataRow aus Bindingsource clonen/kopieren

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von DianonForce.

    DataRow aus Bindingsource clonen/kopieren

    Hi, ich muß euch mal wieder nerfen.

    Ich hab bei Google leider nix gefunden was ich geschaft hätte umzusetzen.

    Was ich versuche, ist es eine koplette Datarow zu duplizieren. D.H. ich habe ein Typisiertes DS mit einer Tabelle mit x Rows, eine der Rows wird zur Bearbeitung in einem Form geöffnet.

    VB.NET-Quellcode

    1. ...
    2. If bsServiceticket.EditCurrent(Of TicketEdit) = DialogResult.OK Then
    3. ...


    Im Form gibt es einen Button, welcher die aktuell geöffnte Datarow clonen soll

    VB.NET-Quellcode

    1. Private Sub btnTicketClone_Click(sender As Object, e As EventArgs) Handles btnTicketClone.Click
    2. Dim sourceRow As tbl_serviceticketRow = Tbl_serviceticketBindingSource.At(Of tbl_serviceticketRow)()
    3. Dim destRow As tbl_serviceticketRow = Tbl_serviceticketBindingSource.AddNewX(Of tbl_serviceticketRow)()
    4. sourceRow.CopyTo(destRow)
    5. End Sub


    Leider fliegt mir das ganzen beim 'AddNew' um die Ohren, mit dem Fehler

    Ein Ausnahmefehler des Typs "System.InvalidOperationException" ist in System.Windows.Forms.dll aufgetreten.

    Zusätzliche Informationen: Das Element kann nicht zu einer schreibgeschützten Liste oder einer Liste mit fester Größe hinzufügt werden.


    Wie geschrieben hab ich zu allem recht wenig auf Google gefunden, vielleicht bin ich auch voll auf dem Holzweg, wäre für ein par Stubser in die richtige Richtung echt dankbar
    So, hat mich noch etwas Nerfen gekostet, aber ich habs schlussendlich hinbekommen, danke für euche Hilfe.

    Der vollständigkeit halber noch der Code wir er nun bei mir funzt:

    VB.NET-Quellcode

    1. Private Sub btnTicketClone_Click(sender As Object, e As EventArgs) Handles btnTicketClone.Click
    2. With Db_serviceticket.tbl_serviceticket
    3. Dim sourceRow As tbl_serviceticketRow = Tbl_serviceticketBindingSource.At(Of tbl_serviceticketRow)()
    4. Dim destRow As tbl_serviceticketRow = .Newtbl_serviceticketRow
    5. sourceRow.CopyTo(destRow)
    6. .Addtbl_serviceticketRow(destRow)
    7. End With
    8. End Sub