neu erzeugten DataTable abspeichern

  • VB.NET

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

    neu erzeugten DataTable abspeichern

    Hallo

    ich hab wieder mal ein großes Problem

    Ich versuche zur Zeit mich mit Datenbanken zu beschäftigen (ich hab mir auch ein Buch gekauft), aber es kommen immer wieder Probleme die
    ich auch nicht im Buch finde, oder vielleicht noch nicht so verstehe.

    Nun mein Problem
    Ich lese eine Access Datenbank ein. Diese hat mehrer Tabellen die in Relation zueinander stehen. (MasterOrder,Bestelldaten,Lieferanschrift,Besteller)

    Um den Inhalt aller Tabellen in einem DataGridView sichtbar zu machen, habe ich einen neuen DataTable1 der die Einträge der Tabellen enthält, erzeugt.
    Wenn ich nun z.B. eine Zeile im DataTable löschen möchte oder eine neue Zeile hinzufüge dann möchte ich diese gerne abspeichern. Die Lösung dazu finde ich aber einfach nicht.
    Es werden die Buttons - löschen speichern usw. automatisch in der Form erzeugt, wenn ich den DataTable (DataGridView) in die Form ziehe.

    Ich hab auch schon eine Möglichkeit wie es teilweise gelöst wird gefunden - die funktioniert aber bei mir nicht.
    MasterOrder = meine Tabelle welche die Bestelldaten enthält
    DataTable1 wäre die unter VisualBasic neu erzeugte DataTable welche die Bestelldaten, Lieferanschrift, Besteller usw. enthält.

    VB.NET-Quellcode

    1. Me.Validate()
    2. Me.MasterOrderBindingSource.EndEdit()
    3. Me.TableAdapterManager.UpdateAll(me.kurze_pcb_order_databaseDataSet)


    Ich hoffe mir kann da diesmal jemand helfen.

    Gruß
    Norbert
    Hallo Norbert,

    bekommst du denn eine Fehlermeldung ? Diese wäre hilfreich.

    Mit dem .updateall Befehl kenne ich mich jetzt nicht aus, aber die normalen Befehle Update, Insert und Delete müssen alle speziell definiert werden, damit diese richtig funktionieren.
    Man kann direkt einen SQL Befehl wie "UPDATE Tabelle SET Eintrag1='Eintrag' WHERE ID=1" an die Datenbank schicken oder den UPDATE Befehl definieren und mit DataAdapter.Update(DataTable/DataSet) ausführen.
    Letzteres muß aber spezieller definiert werden, so wie z.B. hier beschrieben.

    Vielleicht hilft dir das ja schonmal etwas weiter.

    Hab noch ein Beispiel in einem Buch gefunden.
    Dateien

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

    Hallo HerrFrie

    danke für deine Antwort.
    Ich muß da mal tief in mich gehen und das von dir mal testen.
    Ich glaub aber noch nicht ganz daran, das mir damit geholfen ist.

    mit dem Code

    VB.NET-Quellcode

    1. Me.Validate()
    2. Me.MasterOrderBindingSource.EndEdit()
    3. Me.TableAdapterManager.UpdateAll(me.kurze_pcb_order_databaseDataSet)

    ist es ja möglich wenn ich die "Tabelle"-MasterOrder (= datagridview) aus der Datenbank "kurze_pcb_order_databaseDataSet" abzuspeichern.
    Mein Problem ist es ja, daß ich einen neu erzeugten DataTable1 mit dem inhalt der Tabelle MasterOrder und Besteller und Lieferanschrift abspeichern möchte.
    Ich müsste dazu irgendwie eine Verknüpfung von dem Inhalt der DataTable1 zu den obengenannten Tabellen herstellen. Was aber eigentlich schon vorhanden ist.

    VB.NET-Quellcode

    1. Me.Validate()
    2. Me.DataTable1BindingSource.EndEdit()
    3. Me.TableAdapterManager.UpdateAll(me.kurze_pcb_order_databaseDataSet)

    gibt keinen Fehler Zurück. Allerdings schreibt er auch nichts in die Datenbank.
    Die Datenbank wird (wenn ich es über den Explorer beobachte auch gar nicht geöffnet)

    Gruß
    Norbert