我可以从我的数据库中选择信息并检索信息,但为什么我不能使用相同的方法更新数据库? 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'
答案 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) {
}
我还认为你应该切换到参数查询。但保留字问题是导致直接问题的原因,也是参数查询中的问题。