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

Posted

技术标签:

【中文标题】asp.net 中的 INSERT INTO 语句中的语法错误【英文标题】:Syntax error in INSERT INTO statement in asp.net 【发布时间】:2014-11-24 08:25:23 【问题描述】:

我正在使用带有 MS.Access 的 ASP.NET 在数据库中.. 有一个名为 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 语句中的语法错误。”

【问题讨论】:

也许用方括号转义你的表和列名,如“登录”、“用户名”或“密码”? IE。 [login][username][password] 【参考方案1】:

这样试试

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

原因:密码是保留字

Source

【讨论】:

我将密码更改为“user_pass”。在此之后,它显示错误“没有为一个或多个必需参数提供值。” 哇,嘿,太棒了!你到底是怎么得出这个解决方案的?【参考方案2】:

试试这个

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();

【讨论】:

以上是关于asp.net 中的 INSERT INTO 语句中的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

access SQL语句中 insert into

postgres 中的条件 INSERT INTO 语句

为啥会出现“INSERT INTO 语句中的语法错误”?

SQL Server 中的 INSERT INTO 语句

insert into语句的语法错误

如何将sqlserver表中的数据导出sql语句或生成insert into语句