Daten in Datenbank speichern

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von EloQuent.

    Daten in Datenbank speichern

    Servus...

    Ich habe heute mit der Datenbankprogrammierung angefangen und stehe schon vor einem Problem.

    So hab ich meine Datenbank mit VS verbunden, aber wenn ich das speichern will, wird es nicht in meine DB übertragen.

    Was mache ich falsch?

    Vielen Dank schon mal... :)

    MFG Andi2572

    Andi2572 schrieb:

    Ich habe bereits die Detailansicht und das DGV versucht. Es funktioniert beides nicht.
    Ich möchte auch beide verwenden. Aber wär das dann nicht der gleiche Lösungsansatz?

    MFG Andi2572
    Wenn ich mit einem Datagridview arbeite, mit z.b. der Tabelle Lieferanten der Access Datenbank, speichere ich die wiefolgt in die Datenbank:


    Me.LieferantDataGridView.EndEdit() ' schreibt Änderung in Cell
    Me.LieferantBindingSource.EndEdit() ' schreibt Cell in DataRow
    Me.LieferantTableAdapter.Update(Me.Artikeldatenbank_beDataSet.Lieferant) ' schreibt DataRow in Datenbank

    meine Datenbank heisst--->Artikeldatenbank
    meine Tabelle heisst ---> Lieferant

    Andi2572 schrieb:

    Hat mir schon ein bisschen weitergeholfen!!
    Jedoch wird es immer noch nicht in meine DB geschrieben!
    Wie geht das?

    MFG Andi2572
    Ich Beschäftige mich auch noch nicht lange mit Datenbankprogrammieren in VB. Daher kann ich dir nur sagen wie ich das mache.

    Ich Verknüpfe wie in deinem geposteten Video die Datenbank.

    Anschlissend erstelle ich ein Datagridview und wähle die Tabelle aus die ich verwenden möchte.
    wenn ich nun den oben genannten Code auf ein Button programmiere funktioniert dies einwandfrei.

    Musst ev. warten bis dir ein erfahrener Benutzer helfen kann :)

    Andi2572 schrieb:

    Ja und wo werden deine Daten gespeichert?
    Die bleiben ja dann im Dataset?!
    Und da werden sie nach einiger Zeit wieder gelöscht?!

    MFG Andi2572
    Mit diesem Befehl schreibe ich die Daten in die Datenbank (für immer bleiben sie dort ;) )

    Me.LieferantTableAdapter.Update(Me.Artikeldatenbank_beDataSet.Lieferant) ' schreibt DataRow in Datenbank
    Bei mir wird das aber nicht in die Datenbank geschrieben.
    Hab genau deinen Code benutzt.

    VerwaltungTableAdapter.Update(Me.VerwaltungDataSet.Verwaltung) ' schreibt DataRow in Datenbank

    Bei mir heißt es nur Verwaltung. Irgendwas kann doch nicht stimmen?!

    MFG Andi2572
    Hab keinen Primärschlüssel definiert. Ich werde mal kurz einen hinzufügen.
    Vielen Dank schon mal für den Tipp!

    MFG Andi2572

    Edit:

    Funktioniert leider immer noch nicht... :(

    Das ist mein aktueller Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub VerwaltungBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VerwaltungBindingNavigatorSaveItem.Click
    3. Me.Validate()
    4. Me.VerwaltungBindingSource.EndEdit()
    5. Me.TableAdapterManager.UpdateAll(Me.VerwaltungDataSet)
    6. End Sub
    7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. Me.VerwaltungTableAdapter.Fill(Me.VerwaltungDataSet.Verwaltung)
    9. End Sub
    10. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    11. VerwaltungTableAdapter.Update(Me.VerwaltungDataSet.Verwaltung) ' schreibt DataRow in Datenbank
    12. End Sub
    13. End Class

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Andi2572“ ()

    in der standard-Einstellung wird beim Start eines Testlaufes die Original-DB immer ins Ausgabeverzeichnis kopiert, und damit alle Änderungen überschrieben.

    Mach dir einen Extra-Button zum Befüllen, und teste damit, ob deine Speichereien erfolgreich waren oder nicht. Ein neuer Testlauf führt u.U. zu Fehlschlüssen.
    @ErfinderDesRades: Das wusste ich noch gar nicht, dass das auch in das Verzeichnis kopiert wird! Leider wird die DB auch nicht geändert.

    @us4711: Ich benutze zum speichern das VerwaltungBindingNavigatorSaveItem_Click Event.
    In Button1_Click steht nur das:

    VB.NET-Quellcode

    1. VerwaltungTableAdapter.Update(Me.VerwaltungDataSet.Verwaltung)


    MFG Andi2572

    Andi2572 schrieb:

    Leider wird die DB auch nicht geändert.

    wie gesagt: wirklich überprüfen kannst du das nur, wenn du dir einen Extra-Button bastelst, mit dem du deine Anwendung per Klick neu befüllen kannst - hast du einen solchen Button inzwischen mal erstellt, oder befüllst du nachwievor ausschließlich im Form_Load?
    Ich befülle meine DB mit dem DataGridView. Also ich schreib da meine Daten rein und drücke dann auf den VerwaltungBindingNavigatorSaveItem Button.
    Soll ich sie dann mal per Button befüllen lassen?

    Edit: Was ich vielleicht noch erwähnen sollte wäre, dass das Auslesen aus der DB funktioniert. Nur das Speichern vom DGV in die DB funktioniert nicht.