在ASP.net中选择并更新accdb数据库

时间:2016-04-12 21:17:53

标签: sql asp.net ms-access

我可以从我的数据库中选择信息并检索信息,但为什么我不能使用相同的方法更新数据库? Commandstring是我用来编写SQL Sentences的东西。

不工作:

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

连接代码:

  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();
                }
            }
        }
    }
}

我的异常消息是我的Update语句中有一个语法错误。 将语句发送到Debug writeline我得到:

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

1 个答案:

答案 0 :(得分:1)

UPDATE tbl_login SET [Time]='21' WHERE Username='Bob' reserved word。将它括在方括号中,如下所示:

    try {
    BufferedReader br = new BufferedReader(new FileReader(inFile));
    String line;
    while ((line = br.readLine()) != null) { String line;
      accounts.add(line.trim());
    }
    br.close();
  } catch (FileNotFoundException e) {
  }

我还认为你应该切换到参数查询。但保留字问题是导致直接问题的原因,也是参数查询中的问题。