Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Einfügen in lokale Datenbank

Empfohlene Antworten

Veröffentlicht

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?

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.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.