这是我的查询:
string Select = "Update DC set Password = '" + txtPass.Text + "' WHERE ID ="+Convert.ToInt32(cbxDocs.SelectedIndex + 1);
con = new OleDbConnection();
this.readconfile = new ReadConfigFile();
con.ConnectionString = this.readconfile.ConfigString(ConfigFiles.ProjectConfigFile);
con.Open();
cmd = new OleDbCommand(Select, con);
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
我不知道出了什么问题但它给了我一条错误消息“更新语句中的语法错误”。 我的表中有两个字段'DC'ID和密码,没有别的。
答案 0 :(得分:4)
PASSWORD
is reserve word将其括在[Password]
这样的方括号中,因此您的查询应该如下所示:
"Update DC set [Password]....
考虑使用参数化查询,这样可以使您免于Sql Injection
答案 1 :(得分:0)
我认为你不需要'on ur查询,几乎每个ddb都保留了密码。 你可以使用参数来避免与+的连续 实施例
string pass = TxtPass.Text;
int s = cbxDocs.SelectedIndex+1;
string Select = "Update DC set Password = @a WHERE ID = @o";
OleDbCommand cmd = new OleDbCommand(Select, conn);
cmd.Paramaters.AddWithValue("@a", pass);
cmd.Parameters.AddWithValue("@o", s);
//everything else....