【发布时间】:2014-12-23 20:05:05
【问题描述】:
我正在尝试插入 MS Access,但在“SQL 语法”中出现错误。
我相信“密码”这个词是一个关键字。有没有办法在不更改数据库字段名称的情况下解决这个问题?
OleDbCommand cmd = new OleDbCommand("INSERT INTO profiles(
user_name, full_name, password, profile_id)
VALUES (@user_name, @full_name, @password, @profile_id);");
cmd.Parameters.AddWithValue("@full_name", this.FullName);
cmd.Parameters.AddWithValue("@user_name", this.UserName);
cmd.Parameters.AddWithValue("@password", this.Password);
cmd.Parameters.AddWithValue("@profile_id", this.ProfileID);
编辑:
上面的代码有一个错字,我现在已经修正了。它没有出现在原始代码中,而是在我在这里编辑后出现的。正如许多人指出的那样,解决方法是括号。
【问题讨论】:
-
YouAreSalty你有没有检查过你的插入语句如果你要添加一个参数,它的名字必须匹配这是没有道理的 -
@DJKRAZE 在 OleDb 中他们没有。只有参数的顺序很重要。
-
LarsTech好点.. 我已经习惯使用 OracleParams 和 SqlParams,我真的认为这无关紧要.. 好收获 -
@Grant Winney 下次会做。我知道问题出在哪里,但我想有时我“知道”的可能是错的......
-
如果操作员修复了他的代码示例,我认为这是一个有效的问题。访问不像其他 sql 环境那样宽松,并且知道与关键字相同的列名周围的括号可能对其他人有所帮助。