我的MS Access更新查询有什么问题?

时间:2013-07-12 17:48:31

标签: c# ms-access

这是我的查询:

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和密码,没有别的。

2 个答案:

答案 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....