Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Folgendes Problem:

Ich erstelle gerade einen kleinen Terminkalender. Ich möchte die Termine in einer lokalen Datenbank speichern. Allerdings gibt es da folgendes Problem:

Zwar wird mir kein SQL Fehler angezeigt, aber dennoch sind nach dem Einfügen keine Daten in der Datenbank.

Mein Quellcode ist folgender:


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        'Prozedur zum Einfügen eines Termins in die Datenbank


        Dim Wann As Date = MonthCalendar1.SelectionStart

        Dim Erinnerung As Integer = NumericUpDown1.Value

        Dim Who As String = Wer.Text

        Dim Number As String = Anzahl.Text

        Dim Where As String = Wo.Text


        Dim con As New SqlServerCe.SqlCeConnection

        Dim cmd As New SqlServerCe.SqlCeCommand


        cmd.Connection = con

        con.ConnectionString = "Data Source=Database1.sdf"



        Try

            con.Open()

            cmd.CommandText = "insert into Termine (Datum, Erinnerung, Wer, Wo, Anzahl)   

            values ('" & _

            Wann & "', '" & "', '" & Erinnerung & "', '" & Who & "', '" & Where & "', '" & Anzahl &  

            "')"


            MsgBox(cmd.CommandText)


        Catch ex As Exception

            MsgBox(ex.Message)

        End Try


        con.Close()


End Sub

Habt ihr vielleicht eine Idee was falsch ist?

Geschrieben

Dir fehlt nach deinem CommandText noch ein ExecuteNonQuery, damit die Abfrage auch an den Server geschickt wird.

Anmerkung:

Es ist weniger fehleranfällig mit Parametern zu arbeiten. Die Datentypen werden passend gemappt, und es ist einfach leserlicher.


Try

    con.Open()

    cmd.CommandText = "insert into Termine (Datum, Erinnerung, Wer, Wo, Anzahl) values (@Datum, @Erinnerung, @Wer, @Wo, @Anzahl)"

    cmd.Parameters.AddWithValue("Datum",Wann)

    cmd.Parameters.AddWithValue("Erinnerung",Erinnerung)

    cmd.Parameters.AddWithValue("Wer",Who)

    cmd.Parameters.AddWithValue("Wo",Where)

    cmd.Parameters.AddWithValue("Anzahl",Number)


    cmd.ExecuteNonQuery()


    MsgBox(cmd.CommandText)


    Catch ex As Exception

        MsgBox(ex.Message)

    End Try

Für weitere Möglichkeiten des SqlServerCe schau dir mal den System.Data.SqlServerCe-Namespace an.

Anmerkung 2:

Mische nicht die Sprachen. Bleib bei Englisch oder Deutsch. Aus eigener Erfahrung würde ich Richtung Englisch tendieren, da Wörter meist prägnanter und kürzer sind. Probiere es einfach mal aus.

Geschrieben

Vielen Dank für die Hilfe :-)

Vorallem Danke für die Anmerkung mit den Parametern, darüber stand in meinem Buch garnichts.

Das mit den Sprachen mischen passiert mir aber auch immer wieder, muss ich wirklich versuchen abzulegen :-)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...