Hy guys
Ich probiere in eine Access DB zu schreiben bzw zu updaten. Nun habe ich jedoch schon weiss ich wie viele Möglichkeiten ausprobiert, welche mir alle denselben Fehler angezeigt haben.
My code so far:
if (Request.QueryString["nid"].ToString() == "new")
{
OleDbConnection newsConnection = new OleDbConnection(myConnectionString);
newsConnection.Open();
string newsSelectString = "INSERT INTO tblNews (date, title, author, content)
VALUES ('" + System.DateTime.Today.Date + " " + System.DateTime.Today.TimeOfDay + "', '" +
tbTitle.Text + "', '" + Session["Username"].ToString() + "', '" + tbContent.Text + "')";
Response.Write(newsSelectString);
OleDbCommand newsCommand = new OleDbCommand(newsSelectString, newsConnection);
newsCommand.ExecuteNonQuery();
}
else
{
OleDbConnection newsConnection = new OleDbConnection(myConnectionString);
newsConnection.Open();
string newsSelectString = "UPDATE tblNews SET title = '" + tbTitle.Text + "', content = '" + tbContent.Text + "' WHERE id = '" + nID + "'";
OleDbCommand newsCommand = new OleDbCommand(newsSelectString, newsConnection);
newsCommand.ExecuteNonQuery();
}
Anhand der Fehlermeldung denke ich dass mit meinem SELECT/UPDATE string was falsch ist. Ich bekomme den Fehler dass die Syntax falsch ist. Markiert wird folgende Zeile:
newsCommand.ExecuteNonQuery();
P.s. nID ist ein string. Enthält eigentlich die ID des News Eintrags, ausser es handelt sich um einen neuen Eintrag (wert= "new").
Habe nun wirklich schon alle Google Einträge ausprobiert jedoch ohne Erfolg... Auslesen der DB geht ohne Probleme. Nur schreiben kann ich nicht😠 DB erfordert keinerlei Benutzeridentifikation und die schreib-leserechte auf dem Ordner sind ebenfalls vorhanden.
Vielen Dank fürs Anschauen!
Thanks for your help for another time 🙂
Welche Fehlermeldung bekommst du denn?
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein
Die Fehlermeldung ist folgende:
Syntaxfehler in der INSERT INTO-Anweisung.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: Syntaxfehler in der INSERT INTO-Anweisung.
Source Error:
Line 58: Response.Write(newsSelectString);
Line 59: OleDbCommand newsCommand = new OleDbCommand(newsSelectString, newsConnection);
Line 60: newsCommand.ExecuteNonQuery();
Line 61: }
Line 62: else
Source File: d:\scratchit\public_html\news_edit.aspx Line: 60
Stack Trace:
[OleDbException (0x80040e14): Syntaxfehler in der INSERT INTO-Anweisung.]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +267
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +192
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +48
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +106
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +108
ASP.news_edit_aspx.btnSave_OnClick(Object sender, EventArgs e) in d:\scratchit\public_html\news_edit.aspx:60
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
Ich habe nun in der Access DB noch Date zu nem string geändert, sodass ich sicher gehn kann dass es nicht am Datum eintragen liegt. Jedoch erfolglos (selbe Fehlermeldung). Habe das Problem auch noch auf csharpfriends.com gepostet, welche ebenfalls noch ratlos dastehn^^
Vielen Dank für alle die sich da Mühe machen und es sich angucken!!
M. W. muss man beim Access-SQL Datumsangaben speziell formatieren. Probier mal einen string ohne Hochkomma einzufügen, der folgendes Fomat hat:
#08/31/2007#
TIPP:
Du kannst leicht prüfen ob dein (nicht sauber) zusammengebauter SQL-String funktioniert indem du ihn in die Zwischenablage kopierst und ihn dann in Access direkt ausführst.
Liebe Grüße
LastGentleman
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein