Syntax error in INSERT INTO statement using OleDb

ado.net, c#, ms-access, oledb

Solution

`Class` and `Section` are both reserved words. Enclose them in square brackets as you have done for the reserved words `[Password]` and `[Name]`.

That page includes a link for Allen Browne's Database Issue Checker Utility. If you have a version of Office which includes Access, you can download that utility and use it to examine your Access db file for other problem object names.

Problem

Good day. I am trying to make a registration page and have the information stored in a database. I made the database using Microsoft Access. I get: Syntax error in INSERT INTO statement every time I press the 'Register' button. I have already tried searching on the net with similar problems and found some things like "Reserved Words" and "It must be your spacing". I did those and it still gives me the error. Am I missing something? Here is the code: ``` public void InsertRecord() { OleDbCommand cmd = new OleDbCommand("INSERT INTO ElemData(StudentID, [Password], [Name], Age, Birthday, Address, FatherName, MotherName, " + "GuardianName, Class, Section, Email, PhoneNumber, MobileNumber) " + "VALUES (@studentid, @password, @name, @age, @birth, @address, @father, @mother, @guardian, @classs, @section, @email, @phone, @mobile)", DBConnection.myCon); cmd.Parameters.Add("@studentid", OleDbType.VarChar).Value = Studentid; cmd.Parameters.Add("@password", OleDbType.VarChar).Value = Password; cmd.Parameters.Add("@name", OleDbType.VarChar).Value = Name; cmd.Parameters.Add("@age", OleDbType.VarChar).Value = Age; cmd.Parameters.Add("@birth", OleDbType.VarChar).Value = Birth; cmd.Parameters.Add("@address", OleDbType.VarChar).Value = Address; cmd.Parameters.Add("@father", OleDbType.VarChar).Value = Father; cmd.Parameters.Add("@mother", OleDbType.VarChar).Value = Mother; cmd.Parameters.Add("@guardian", OleDbType.VarChar).Value = Guardian; cmd.Parameters.Add("@classs", OleDbType.VarChar).Value = Classs; cmd.Parameters.Add("@section", OleDbType.VarChar).Value = Section; cmd.Parameters.Add("@email", OleDbType.VarChar).Value = Email; cmd.Parameters.Add("@phone", OleDbType.VarChar).Value = Phone; cmd.Parameters.Add("@mobile", OleDbType.VarChar).Value = Mobile; if (cmd.Connection.State == ConnectionState.Open) { cmd.Connection.Close(); } DBConnection.myCon.Open(); cmd.ExecuteNonQuery(); DBConnection.myCon.Close(); } ```

Original source