【发布时间】:2016-01-02 09:57:25
【问题描述】:
首先,是的,我知道还有其他几个问题。我已经审查并尝试了其中提出的不同解决方案;但是,当我单击提交按钮运行该函数时,我仍然收到“语法错误 INSERT INTO 语句”消息。
我正在运行 VS 2015 和 Access 2010 数据库。完整的错误信息如下:
Data.OleDb.OleDbException (0x80040E14):INSERT INTO 中的语法错误 陈述。在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult 小时)在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,对象和执行结果)在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(对象& 执行结果)在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior 行为,字符串方法)在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 createAcc.btnCreateAccount_Click(Object sender, EventArgs e) in e:\Documents\Visual Studio 2015\WebSites\OneStopFurniture\createAcc.aspx.cs:43 行
我的按钮处理程序代码如下:
protected void btnCreateAccount_Click(object sender, EventArgs e)
{
connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=E:\\Documents\\Visual Studio 2015\\WebSites\\OneStopFurniture\\App_Data\\OneStopFur.accdb";
string InsertQuery;
try
{
connection.Open();
OleDbCommand cmdInsert = new OleDbCommand();
cmdInsert.Connection = connection;
InsertQuery= "INSERT INTO [userInfo] (
userName, password, firstName, lastName, userAddress, userCity, userZip, userPhone, userEmail
) VALUES (
@userName, @password, @firstName, @lastName, @userAddress, @userCity, @userState, @userZip, @userPhone, @userEmail
)";
cmdInsert.Parameters.AddWithValue("@userName", txtUserName.Text);
cmdInsert.Parameters.AddWithValue("@password", txtPassword.Text);
cmdInsert.Parameters.AddWithValue("@firstName", txtFirstName.Text);
cmdInsert.Parameters.AddWithValue("@lastName", txtLastName.Text);
cmdInsert.Parameters.AddWithValue("@userAddress", txtAddress.Text);
cmdInsert.Parameters.AddWithValue("@userCity", txtCity.Text);
cmdInsert.Parameters.AddWithValue("@userState", txtState.Text);
cmdInsert.Parameters.AddWithValue("@userZip", txtZip.Text);
cmdInsert.Parameters.AddWithValue("@userPhone", txtPhone.Text);
cmdInsert.Parameters.AddWithValue("@userEmail", txtEmail.Text);
cmdInsert.CommandText = InsertQuery;
cmdInsert.ExecuteNonQuery();
lblConfirm.Visible = true;
lblConfirm.Text = "Account creation successful.";
}
catch (Exception ex)
{
lblConfirm.Visible = true;
lblConfirm.Text = "Unable to create" + ex;
}
}
谁能告诉我我在这里俯瞰什么?在这一点上,我完全失败了。
谢谢。
【问题讨论】:
-
10个参数9列
-
更好的查询格式可以帮助您自己找到这个错误。看看我所做的更改以及目标列现在如何与值对齐?现在扫描和比较要容易得多。