INSERT错误ASP.NET

Chr*_*ris 1 c# sql asp.net ms-access

嘿我收到一个错误,说我的代码在插入数据库时​​出现问题,无法找到它.该错误表明它是INSERT语句中的内容,但出现在该行上"cmd.ExecuteNonQuery();".我正在使用访问数据库.

错误:INSERT INTO语句中的语法错误.

con.Open();
string mysql; 
mysql = "INSERT INTO [User](FirstName,Surname,Age,HouseNumber,PostCode,Username,Password) 
         VALUES (?,?,?,?,?,?,?)";
OleDbCommand cmd = new OleDbCommand(mysql, con);
cmd.Parameters.AddWithValue("@p1", tbFirstName.Text);
cmd.Parameters.AddWithValue("@p2", tbSurname.Text);
cmd.Parameters.AddWithValue("@p3", int.Parse(tbAge.Text));
cmd.Parameters.AddWithValue("@p4", tbAddress1.Text);
cmd.Parameters.AddWithValue("@p5", tbPostCode.Text);
cmd.Parameters.AddWithValue("@p6", tbUsername.Text);
cmd.Parameters.AddWithValue("@p7", tbPassword.Text);
cmd.ExecuteNonQuery();
con.Close();
Run Code Online (Sandbox Code Playgroud)

Dam*_*ith 5

当您添加带有值的参数时,您需要将其转换为匹配类型,如果年龄是数字则

cmd.Parameters.AddWithValue("@p3", int.Parse(tbAge.Text));
Run Code Online (Sandbox Code Playgroud)

也是你可以尝试的User关键词

"INSERT INTO [User] ([FirstName], [Surname], [Age], [HouseNumber], [PostCode], [Username], [Password]) VALUES (?,?,?,?,?,?,?)";
Run Code Online (Sandbox Code Playgroud)

  • @ChristopherDunne` [PASSWORD]`也是保留字,更好的是你可以通过为所有列和表名添加`[]`来测试 (2认同)