kostenloser Webspace werbefrei: lima-city


C# Daten in MySql Datenbank schreiben

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    my-easytools

    my-easytools hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Zu welchem Fehler kommt's denn?
  4. Autor dieses Themas

    my-easytools

    my-easytools hat kostenlosen Webspace.

    fabo schrieb:
    Zu welchem Fehler kommt's denn?


    Fatal error encountered during command execution
  5. 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
  6. 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
  7. 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
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!