你把数据库中的字段名改一下,特别是比较大众化的名字,如name,user等
然后再试……

解决方案 »

  1.   

    把sql_edit字符串在执行查询前输出出来,在查询分析器上执行一下看看对不对。
      

  2.   

    我的字段名就是name阿,不是很明白您的意思
      

  3.   

    不要使用系统关键字
    如果一定要用.可以这样[name]
      

  4.   

    是,我取消了,可是,又有新的错误:
    System.Data.SqlClient.SqlException: 第 1 行: '0' 附近有语法错误。
    还是在同一行处问题,这个‘0’是什么啊
      

  5.   


    String sql_edit = "UPDATE tr" +
    "SET name = '" + name.Replace("'","''")+ "'," +
    "addr = '" + addr.Replace("'","''")+ "'" +
    " WHERE id = " + e.Item.Cells[0].Text;是不是在tr和set中间少了一个空格
      

  6.   

    你用一個label將sql_edit顯示出來看看sql語句對不對
      

  7.   

    String sql_edit = "UPDATE tr SET Name = '" + Name.Replace("'","''")+ "',addr = '" + addr.Replace("'","''")+ "' WHERE id =  e.Item.Cells[0].Text";
      

  8.   

    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------第 1 行: '0' 附近有语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '0' 附近有语法错误。源错误: 
    行 77: 
    行 78: SqlCommand sqlCommandUpdate = new SqlCommand(sql_edit,connUpdate);
    行 79: sqlCommandUpdate.ExecuteNonQuery();
    行 80: connUpdate.Close();
    行 81: 
     源文件: c:\inetpub\wwwroot\3.aspx    行: 79 堆栈跟踪: 
    [SqlException: 第 1 行: '0' 附近有语法错误。]
       System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +180
       ASP._3_aspx.People_Update(Object sender, DataGridCommandEventArgs e) in c:\inetpub\wwwroot\3.aspx:79
       System.Web.UI.WebControls.DataGrid.OnUpdateCommand(DataGridCommandEventArgs e) +109
       System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +507
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
       System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +106
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
       System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +121
       System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
       System.Web.UI.Page.ProcessRequestMain() +1277 
      

  9.   

    运行到这里时,SQL语句的字符串的值是什么?
      

  10.   

    难道sql_edit没有值吗
    不可能
      

  11.   

    sqledit在抛出异常时的值是多少
      

  12.   

    是Name.Replace("'","''")值出问题了!!你把这个值替换成“'任一值'”再试验!
    如果没出错!就说明是Name.Replace("'","''")的值有问题!
    也许中间有双引号!!把单引号和双引号替换成中文中的单引号和双引号!!
      

  13.   

    在监视窗口中输入你想要查看的变量的名称,回车就行了
    还可以在局部变量的窗口中找到这个变量的值
    我用的是.net2003不过都差不多
      

  14.   

    你用Response.Write 把sql_edit打印出来肯定会惊奇地发现
    UPDATE tr" +
    "SET name看清楚没?
    这个SET前面应该有个空格啊!!!
      

  15.   

    单步调试,看一下输出出来的SQl语句是什么,再贴出来,建议你不要使用name关键字
      

  16.   

    不要用name做字段名啦。 比如表名为employee,那么字段名就用EName或者。。用关键字做字段名,今天也代码的时候麻烦多多
      

  17.   

    我在SET前加空格了,也把NAME给改了,可是还是同样的错误啊
    我想也可能是Name.Replace("'","''")出问题了,可是看不出来啊
      

  18.   

    把运行时的SQL语句贴出来看看
      

  19.   

    告诉你一个方法:在程序中写上:response.write sql_edit 
    然后把输出的sql_edit 字符串贴出来!
      

  20.   

    我用的是FrontPage编的啊,没有监视窗口,怎么办
      

  21.   

    name是SQL数据库系统的专用名词,不能用,
    如果用的话:
    如下[name],
    加对中括号
      

  22.   

    zl2006(巧郁) ,我换了,加了[],系统告诉我无效阿
     homesos(竹篮打水) 非常感谢你这么耐心的指教,可要怎么才能打印,用Response.Write么
      

  23.   

    你试试吧,
    或者在执行语句之前,把sql_edit的值赋给一个标签或者文本框,按钮什么的
    还有就是最好能先把数据库中的字段名改掉,最好不要用与系统所专用名词,这个老早就说过了
      

  24.   

    打印不出来啊,只要一点击Update就抱错,头大ing……
      

  25.   

    要不你就把具体执行SQL命令语句的那段去掉,只留组装SQL命令语句的部分,然后把它打印出来
      

  26.   

    把执行的语句去掉后,打印出来的就是我的sql命令
      

  27.   

    正常显示阿
    sql_edit = "UPDATE tr SET Name = '" + Name.Replace("'","''")+ "',addr = '" + addr.Replace("'","''")+ "' WHERE id =  e.Item.Cells[0].Text";
      

  28.   

    哎呀
    我是想让你把sql_edit的值打印出来,并不是把这个打印出来
      

  29.   

    是把将要执行的那个UPDATE语句打印出来
      

  30.   

    <asp:Label ID="trSQL" Runat="server"/>sqlCommandUpdate.ExecuteNonQuery();
    trSQL.Text='"+sqll_edit+"';请问,打印语句是这么写么,
      

  31.   

    要在写在
    sqlCommandUpdate.ExecuteNonQuery();
    之前吧直接把sql_edit赋给一个文本框要好一些吧,你好贴出来
    trSQL.Text=sqll_edit;行吗在那里面咋样我不清楚
      

  32.   

    你先把SQL的执行语句去掉或是注释掉