DataTable-Inhalt 1 zu DataTable-Inhalt 2 kopieren, bzw. clonen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Trigoor.

    DataTable-Inhalt 1 zu DataTable-Inhalt 2 kopieren, bzw. clonen

    Hallo Leute,

    ich bin es mal wieder.
    Erst einmal mein Quellcode:

    VB.NET-Quellcode

    1. ' Fall 1:
    2. ' Fehler bei der Überladungsauflösung, da keine zugreifbare "Update" mit diesen Argumenten
    3. ' aufgerufen werden kann.
    4. Me.Validate()
    5. Me.KONTOAUSZUG_TEMPBindingSource.EndEdit()
    6. Me.KONTOAUSZUGTableAdapter.Update(Me.DsCC1.KONTOAUSZUG_TEMP)
    7. ' Fall 2:
    8. ' Die Eigenschaft "Kontoauszug" ist ReadOnly
    9. Me.DsCC1.KONTOAUSZUG = DsCC1.KONTOAUSZUG_TEMP
    10. ' Fall 3:
    11. ' Genau dasselbe wie bei Fall 2
    12. Dim clone As DataTable
    13. clone = DsCC1.KONTOAUSZUG_TEMP.Clone
    14. Me.DsCC1.KONTOAUSZUG = clone


    Eine kleine Erläuterung hierzu:
    Ich habe eine DataTable "KONTOAUSZUG_TEMP". Diesen Inhalt möchte ich der DataTable "KONTOAUSZUG" zuweisen. Die beiden DataTables verfügen nätürlich über das gleiche Schema.

    Wie kann ich das anstellen? Und geht es vielleicht über "copy". Bei "clone" wird ja, soweit ich weiß ich nur das Schema "geklont". Okay, es gibt ja natürlich noch die Möglichkeit über "importrow". Aber wozu kompliziert, wenn es auch einfach geht, oder? ;)

    Schon einmal vielen Dank im Vorraus!

    Viele Grüße
    Trigoor
    Hallo ErfinderDesRades,

    klar, Fall 1 und Fall 2 leuchten mir ein. Soweit mir meine dürftigen Englschkenntnisse ausreichen, bedeutet dass, das nur Lesezugriff gestattet ist. ;)

    Also zu Argumenten...es gibt 6 Aufrufmethoden:
    1. Als DataTable
    2. Als DataSet
    3. DataRows()
    4. DataRow
    5. Jeden Eintrag aus der DataTable einzeln
    6 Genauso wie bei 5, nur mit einem Fragezeichen hinter jedem Argument

    Das hier klappt zwar...

    VB.NET-Quellcode

    1. Me.Validate()
    2. Me.KONTOAUSZUG_TEMPBindingSource.EndEdit()
    3. Me.KONTOAUSZUGTableAdapter.Update(DsCC1)

    ...aber in der DB kommen halt die Daten aus KONTOAUSZUG rein, und nicht leider aus KONTOAUSZUG_TEMP.

    Aber ich habe gelesen, dass es die Möglichkeit gibt über die DataGridView dort ranzukommen. Das müßte dann ja auch mit einem normalen DataGrid gehen. Das wäre vielleicht eine Alternative, oder? ?(

    Viele Grüße
    Trigoor

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

    Hallo ErfinderDesRades,

    ist mir ja auch klar, das es der richtige TableAdapter sein muss. Nun ja, es war halt ein Versuch.

    Folgendes klappt:

    VB.NET-Quellcode

    1. Me.Validate()
    2. Me.KONTOAUSZUG_TEMPBindingSource.EndEdit()
    3. Me.KONTOAUSZUG_TEMPTableAdapter.Update(DsCC1.KONTOAUSZUG_TEMP)


    Ist ja auch klar. Hier passt der Adapter und die Table zusammen. Habe es ausprobiert, und es klappt tatsächlich. Er schreibt sogar in die Tabelle KONTOAUSZUG in die DB. Das wundert mich aber, denn ich ging davon aus der er es in die DataTable KONTOAUSZUG_TEMP speichert, und diese Tabelle ist halt nur tempörar und existiert in der DB nicht...nun ja, vielleicht komme ich ja noch dahinter. Hauptsache ist es, dass es erst einmal klappt. :P

    Viele Grüße
    Trigoor