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 语句中的语法错误的主要内容,如果未能解决你的问题,请参考以下文章