【问题标题】:Syntax Error in UPDATE Statement - C# [closed]UPDATE 语句中的语法错误 - C# [关闭]
【发布时间】:2013-10-15 11:36:56
【问题描述】:

我一直在尝试将数据从 GRIDVIEW 更新到 MSACCESS 数据库。但是在执行 ExecuteNonQuery 语句时,我收到一个错误,即 SYNTAX ERROR IN UPDATE STATEMENT。请帮助我..我的问题可能与几个人发布的问题相似..但我的代码与其他人的不同..请快速响应...在下面的代码中这是行 cmd.ExecuteNonQuery();我在哪里收到错误...请帮助我

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    OleDbConnection con = new OleDbConnection(constr);
    con.Open();    
    string name = GridView1.DataKeys[e.RowIndex].Values["SName"].ToString();
    TextBox day = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1");
    string com = "update enroll set Day = '?' where SName = '?'";
    OleDbCommand cmd = new OleDbCommand(com, con);
    cmd.Parameters.AddWithValue("@Day", day.Text.ToString());
    cmd.Parameters.AddWithValue("@SName", name.ToString());
    cmd.ExecuteNonQuery();
    con.Close();
    Label3.ForeColor = Color.Green;
    Label3.Text = name + " Details Updated successfully";
    GridView1.EditIndex = -1;
}

【问题讨论】:

  • 有关您编写的代码问题的问题必须在问题本身中描述具体问题——并包含重现问题的有效代码。 See SSCCE.org for guidance.
  • OleDbParameters 是位置未命名的。
  • 你的数据库中Day 列的数据类型是什么?
  • day列的数据类型是varchar....错误是cmd.ExecuteNonQuery()

标签: c#


【解决方案1】:

更改string com = "update enroll set Day = '?' where SName = '?'";

string com = "update enroll set Day = ? where SName = ?";

由于您在? 之前和之后都有引号,因此不会将其视为参数

【讨论】:

  • 感谢您的回复...我按照您说的做了...但仍然没有纠正
  • 有什么错误吗?还是看不到数据库中的变化?
猜你喜欢
  • 2015-07-13
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多