gpt4 book ai didi

asp.net - INSERT INTO 语句中的语法错误。系统.Data.OleDb.OleDbErrorCollection

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:45 24 4
gpt4 key购买 nike

您好,我正在 Visual Studio 2012 Express 中创建基本表单。我使用 Microsoft Access 2012 作为数据库。我的问题是当我按下提交按钮时没有任何反应。

Syntax error in INSERT INTO statement. System.Data.OleDb.OleDbErrorCollection

我的代码如下。请帮我解决这个问题。

protected void Button1_Click(object sender, EventArgs e)
{
string conString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\admin\Desktop\del\SHAFI\db.accdb";
OleDbConnection con = new OleDbConnection(conString);
OleDbCommand cmd = con.CreateCommand();
string text = "INSERT INTO TEST (Number, Amount) VALUES (?, ?)";
cmd.CommandText = text;
try
{
con.Open();
cmd.Parameters.AddWithValue("@Number", txtAmount.Text);
cmd.Parameters.AddWithValue("@Amount", txtOrder.Text);
cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
txtAmount.Text = "Sorry";
Response.Write(ex.Message.ToString() + "<br />" + ex.Errors.GetType());
}
}

最佳答案

除了缺少 using statement 之外,您的代码是正确的围绕一次性元素,但真正的问题是数字这个词。这是一个reserved keyword for MSAccess .
使用它括在方括号中。

string text = "INSERT INTO TEST ([Number], Amount) VALUES (?, ?)";

但是,如果仍然可行,我真的建议您更改该列名称。这个问题会变得很烦人。

protected void Button1_Click(object sender, EventArgs e)
{
string conString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\admin\Desktop\del\SHAFI\db.accdb";
using(OleDbConnection con = new OleDbConnection(conString))
using(OleDbCommand cmd = con.CreateCommand())
{
string text = "INSERT INTO TEST ([Number], Amount) VALUES (?, ?)";
cmd.CommandText = text;
try
{
con.Open();
cmd.Parameters.AddWithValue("@Number", txtAmount.Text);
cmd.Parameters.AddWithValue("@Amount", txtOrder.Text);
cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
txtAmount.Text = "Sorry";
Response.Write(ex.Message.ToString() + "<br />" + ex.Errors.GetType());
}
}

关于asp.net - INSERT INTO 语句中的语法错误。系统.Data.OleDb.OleDbErrorCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com