2013-10-14 96 views
-5

我一直在尝试从GRIDVIEW更新数据到MSACCESS数据库..但是在执行ExecuteNonQuery语句时,我得到的错误是SYNTAX ERROR IN UPDATE STATEMENT。请帮助我....我的问题可能与几个人发布的问题类似..但我的代码片段与其他代码不同..请快速回复...在以下代码中,这是行 cmd。的ExecuteNonQuery();我在哪里收到错误...... plz..plz帮我UPDATE语句中的语法错误 - C#

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; 
} 
+0

有关您编写的代码问题的问题必须描述**具体问题** - 并包含val id代码来重现它 - 在问题本身。 [见SSCCE.org的指导](http://sscce.org/)。 –

+2

'OleDbParameter's是位置未命名的。 –

+0

请参阅http://stackoverflow.com/questions/5772219/how-to-use-update-in-ado-net – NoChance

回答

4

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

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

,因为你之前有报价和?后不会作为考虑参数

+0

感谢您的回复...我按照您的说法做了...但仍未纠正 – user2877606

+0

是否有任何错误?或者看不到数据库中的更改? – Damith