我在insert into语句中收到语法错误。我正在使用微软访问数据库。这是代码示例:
protected void Button1_Click(object sender, EventArgs e)
{
try
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("measurmentdb.mdb"));
OleDbCommand cmd = new OleDbCommand("insert into tbl_Users(Username,Name,Surname,Password,Email,Phonenumber,CV)values(@un,@name,@sna,@pw,@em,@pn,@cv)", con);
cmd.Parameters.AddWithValue("@un", txtusername.Text);
cmd.Parameters.AddWithValue("@name", txtname.Text);
cmd.Parameters.AddWithValue("@sna", txtsurname.Text);
cmd.Parameters.AddWithValue("@pw", txtpassword.Text);
cmd.Parameters.AddWithValue("@em", txtemail.Text);
cmd.Parameters.AddWithValue("@pn", txtphone.Text);
cmd.Parameters.AddWithValue("@cv", txtcv.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
throw ex;
}
}
数据库中的所有内容都是文本格式:
tbl_Users:
Username
Name
Surname
Password
Email
Phonenumber
CV
我无法弄清楚出了什么问题。我很感激你的帮助。
答案 0 :(得分:3)
NAME
和PASSWORD
为reserved words。
将它们与方括号一起使用,例如[NAME]
和[PASSWORD]
OleDbCommand cmd = new OleDbCommand("insert into tbl_Users(Username,[Name],Surname,[Password],Email,Phonenumber,CV)values(@un,@name,@sna,@pw,@em,@pn,@cv)", con);
如果已使用保留字,则可以避免出现错误消息 用括号(
[ ]
)围绕每个单词的出现。的然而, 最好的解决方案是将名称更改为非保留字。