1

我在插入语句中收到语法错误。我正在使用微软访问数据库。这是代码示例:

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

我不知道出了什么问题。我会很感激你的帮助。

4

1 回答 1

3

NAME并且PASSWORD是MS Access 上的保留字

将它们与方括号一起使用,例如[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);

[ ]如果保留字已被使用,您可以通过用括号 ( )将每个出现的字括起来来避免错误消息。但是,最好的解决方案是将名称更改为非保留字。

于 2013-05-17T22:49:38.640 回答