2016-04-12 13 views
1

Ich bin in der Lage, Informationen aus meiner Datenbank auszuwählen und Informationen abzurufen, aber warum kann ich nicht dieselben verwenden, um die Datenbank zu aktualisieren? Commandstring ist, was ich benutze, um meine SQL-Sentences zu schreiben.Auswählen und Aktualisieren von accdb-Datenbank in ASP.net

nicht funktioniert:

DatabaseConnection.Commandstring = ("UPDATE tbl_login SET Time='"+Settings.UpdateRecord+"' WHERE Username='"+Settings.LoginName+"' "); 

Anschluss-Code:

public static string ConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + System.Web.HttpContext.Current.Server.MapPath("MainData.accdb") + "'; Persist Security Info = False;"; 
    public static string Commandstring; 
    public static object result; 

    public static void Connect() { 
     using (OleDbConnection con = new OleDbConnection(DatabaseConnection.ConString)) { 
      con.Open(); 
      Debug.WriteLine("Connection to DB Established"); 

      using (OleDbCommand cmd = new OleDbCommand(Commandstring, con)) { 
       try { 
        cmd.ExecuteNonQuery(); 

        con.Close(); 
        Debug.WriteLine("Connection to DB Terminated"); 
       } 
       catch (Exception ex) { 
        Debug.WriteLine("Error Updating Database: " +ex.Message); 
        con.Close(); 
       } 
      } 
     } 
    } 
} 

meine Ausnahmemeldung sagt, gibt es einen Syntaxfehler in meinem Update-Anweisung. die Anweisung Debug Senden Console.WriteLine i erhalten:

UPDATE tbl_login SET Time='21' WHERE Username='Bob' 
+1

'Zeit' ist ein [reserviertes Wort] (http://allenbrowne.com/AppIssueBadWord.html#T). Schließe es in eckige Klammern ein: 'UPDATE tbl_login SET [Zeit] = '21' WHERE Benutzername = 'Bob'' – HansUp

+0

Vielen Dank! – BPW

Antwort

1

Time ein reserved word ist. Schließen Sie es in eckigen Klammern wie folgt ein:

UPDATE tbl_login SET [Time]='21' WHERE Username='Bob' 

Ich denke auch, dass Sie zu einer Parameterabfrage wechseln sollten. Das Problem mit dem reservierten Wort ist jedoch die Ursache Ihres unmittelbaren Problems und wird auch bei einer Parameterabfrage ein Problem darstellen.

+0

Danke, ich habe gehört, dass mein Code für SQL-Injection-Angriffe offen war, und ich würde das zu einem späteren Zeitpunkt recherchieren, danke, dass Sie mich daran erinnert haben – BPW

Verwandte Themen