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 :-)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...