string ID = Gdv2.DataKeys[e.RowIndex].Value.ToString();
            string _Name = ((TextBox)(Gdv2.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
            float _Number = float.Parse (((TextBox)(Gdv2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.Trim());
            string _Mark = ((TextBox)(Gdv2.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
            string sqlStr = "update Prod set Name='" + _Name + "',Number='" + _Number + "',Mark='" + _Mark +  "' where Code='" + ID + "'";
            Common.ExecuteSql(sqlStr);UPDATE 语句的语法错误  语句在sql中可以执行呀
是什么原因啊 请帮下忙

解决方案 »

  1.   

    把错误信息打出来
    把sqlStr 显示出来
      

  2.   

     protected void Gdv2_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {
                string ID = Gdv2.DataKeys[e.RowIndex].Value.ToString();
                string _Name = ((TextBox)(Gdv2.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
                float _Number = float.Parse (((TextBox)(Gdv2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.Trim());
                string _Mark = ((TextBox)(Gdv2.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
                string sqlStr = "update Prod set Name='" + _Name + "',Number=" + _Number + ",Mark='" + _Mark +  "' where Code='" + ID + "'";
                Common.ExecuteSql(sqlStr);
                Gdv2.EditIndex = -1;
                bind();
            }即时窗口
    ?sqlStr
    "update Prod set Name='nce',Number=21,Mark='awfwf' where Code='001'"UPDATE 语句的语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Exception: UPDATE 语句的语法错误。源错误: 行 77:         catch (Exception e)
    行 78:         {
    行 79:             throw new Exception(e.Message);
    行 80:         }
    行 81:         finally
    源文件: E:\myweb\Firstdata\Firstdata\Common.cs    行: 79 堆栈跟踪: [Exception: UPDATE 语句的语法错误。]
       Common.ExecuteSql(String sqlStr) in E:\myweb\Firstdata\Firstdata\Common.cs:79
       Firstdata.Edit.Gdv2_RowUpdating(Object sender, GridViewUpdateEventArgs e) in E:\myweb\Firstdata\Firstdata\Edit.aspx.cs:58
       System.Web.UI.WebControls.GridView.OnRowUpdating(GridViewUpdateEventArgs e) +133
       System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +720
       System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +704
       System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
       System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
       System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
       System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
       System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
      

  3.   

    float的值与数据库规定的肯定不符了,你仔细看下。是不是超出范围了或者类型不统一。
      

  4.   

    update Prod set Name='nce',Number=21,Mark='awfwf' where Code='001'放到数据库中分析一下,看看怎么错的
      

  5.   

    原因找到了Number是access里的关键字- -
    谢谢大家