asp.net中INSERT INTO语句中的语法错误

asp.net中INSERT INTO语句中的语法错误,asp.net,ms-access,Asp.net,Ms Access,我正在使用ASP.NET和Access女士 在数据库中。。有一个名为login的表,表中有三个字段,即id、用户名和密码。 下面是我正在尝试运行的代码 String username = TextBox1.Text; String password = TextBox2.Text; OleDbConnection dbConnection = new OleDbConnection("provider=microsoft.ACE.OLEDB.12.0; Data source=C:\\Users

我正在使用ASP.NET和Access女士 在数据库中。。有一个名为login的表,表中有三个字段,即id、用户名和密码。 下面是我正在尝试运行的代码

String username = TextBox1.Text;
String password = TextBox2.Text;
OleDbConnection dbConnection = new OleDbConnection("provider=microsoft.ACE.OLEDB.12.0; Data source=C:\\Users\\Mohit Kumar Singla\\Documents\\phonebook.accdb");
dbConnection.Open();

Console.WriteLine("Error Occurred. Please check");
System.Diagnostics.Debug.WriteLine("Error--------------------------------");

String q = "insert into login (username, password) values (@u, @p)";               
OleDbCommand cmd = new OleDbCommand(q, dbConnection);

cmd.Parameters.AddWithValue("@u", username);
cmd.Parameters.AddWithValue("@p", password);

cmd.ExecuteNonQuery();
我在INSERT INTO语句中遇到此错误语法错误。

请这样尝试

String q = "insert into login (username, [password]) values (@u, @p)"; 
原因:密码是保留字

试试这个

String username = TextBox1.Text;
String password = TextBox2.Text;
OleDbConnection dbConnection = new OleDbConnection("provider=microsoft.ACE.OLEDB.12.0; Data source=C:\\Users\\Mohit Kumar Singla\\Documents\\phonebook.accdb");
dbConnection.Open();

Console.WriteLine("Error Occurred. Please check");
System.Diagnostics.Debug.WriteLine("Error--------------------------------");

String q = "insert into login (username, [password]) values (@u, @p)";               
OleDbCommand cmd = new OleDbCommand(q, dbConnection);

cmd.Parameters.AddWithValue("@u", username);
cmd.Parameters.AddWithValue("@p", password);

cmd.ExecuteNonQuery();
dbConnection.Close();

也许用方括号转义表名和列名,如登录用户名或密码?例如[登录],[用户名]和[密码]。我将密码更改为用户密码。在这之后,它会显示一个或多个必需参数没有给定值的错误。哇,嘿,太好了!你到底是怎么找到这个解决办法的?