C# Daten in MySql Datenbank schreiben
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
anwendung
architektur
aufgefallen
beschreibung
code
date
datenbank
datum
erstellung
fehler
feld
kapsel
kategorie
musik
persistenz
speichern
string
test
testen
url
-
Ich schreibe gerade ein C# Programm, dass Daten in eine MySql Datenbank speichern soll. Leider habe ich beim speichern in die Datenbank Probleme.
MySqlConnection conn = new MySqlConnection(connString); MySqlCommand command = conn.CreateCommand(); command.CommandText = "INSERT into test (ID, Name, Datum, Kategorie, Beschreibung) values ('123','test','24.04.2012','Musik','Beschreibungtest')"; conn.Open(); MySqlDataReader reader = command.ExecuteReader();
So wie der Code jetzt dasteht funktioniert alles, aber ich möchte die Daten durch Variablen ersetzen und das funktioniert leider nicht. Direkt Variablen einsetzen ist nicht möglich. Stattdessen soll man ein @ oder ? Zeichen vor die Variablen setzen. Trotzdem funktioniert es leider nicht.
command.CommandText = "INSERT into test (ID, Name, Datum, Kategorie, Beschreibung) values (@ID,@Name,'24.04.2012','Musik','Beschreibungtest')";
Beim ausführen kommt es immer zu einem fatal error.
Was mache ich falsch? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Zu welchem Fehler kommt's denn?
-
Da ist mir was aufgefallen:
Du versuchst in das feld "Datum" das "24.04.2012" einzufügen nimmt den das feld Datum das überhaupt an ?
oder anders welches format hat das feld Datum
ich nehme meistens "date" da ist dan das forman so JAHR-MONAT-TAG
musst mal testen. Ansonsten ist der string richtig.
du müsstest noch mal schauen ob du bei der erstellung der DB nicht einen fehler gemacht hast, nicht das du einen text in einen int schreiben willst, Passiert mir öffters :D
MfG
JoKaBo -
Sollte ein String, in dem Du Variablen verwendest, nicht so aussehen, sofern "ID" und "Name" Variablen sind?
command.CommandText = "INSERT INTO test (ID, Name, Datum, Kategorie, Beschreibung) VALUES ('" + ID + "', '" + Name + "','24.04.2012','Musik','Beschreibungtest')";
Das @ kenn ich eigentlich nur, um einen String richtig zu escapen.
Wird zum Beispiel bei Pfadangaben verwendet.
Dann muss man nicht "C:\\temp\\test" schreiben, sondern kann "@C:\temp\test" verwenden....ohne @ müsste man den Backslash mit einem weiteren Backslash escapen.
Ich weiß nicht, ob MySQL das so annimmt.
Beitrag zuletzt geändert: 3.6.2012 3:52:03 von adelwoehrer -
uff, ich würde an deiner stelle den datenbank-teil deiner anwendung löschen und nochmal von vorne anfangen. das so hardzucoden sollte man nie nie niemals machen. dafür gibt es doch persistenz-frameworks, die genau das kapseln und deine architektur auch deutlich sauberer halten.
sich selbst so halbgar persistenz-funktionalität hard zu coden ist quark und verschwendete zeit.
Beitrag zuletzt geändert: 4.8.2012 9:56:33 von peterpen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage