martinposer Geschrieben 12. Juni 2011 Geschrieben 12. Juni 2011 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? Zitieren
Gooose Geschrieben 12. Juni 2011 Geschrieben 12. Juni 2011 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. Zitieren
martinposer Geschrieben 12. Juni 2011 Autor Geschrieben 12. Juni 2011 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 :-) Zitieren
Empfohlene Beiträge
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.