出现了一个莫名其妙的问题,请教各位大师!! 你把数据库中的字段名改一下,特别是比较大众化的名字,如name,user等然后再试…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把sql_edit字符串在执行查询前输出出来,在查询分析器上执行一下看看对不对。 我的字段名就是name阿,不是很明白您的意思 不要使用系统关键字如果一定要用.可以这样[name] 是,我取消了,可是,又有新的错误:System.Data.SqlClient.SqlException: 第 1 行: '0' 附近有语法错误。还是在同一行处问题,这个‘0’是什么啊 String sql_edit = "UPDATE tr" +"SET name = '" + name.Replace("'","''")+ "'," +"addr = '" + addr.Replace("'","''")+ "'" +" WHERE id = " + e.Item.Cells[0].Text;是不是在tr和set中间少了一个空格 你用一個label將sql_edit顯示出來看看sql語句對不對 String sql_edit = "UPDATE tr SET Name = '" + Name.Replace("'","''")+ "',addr = '" + addr.Replace("'","''")+ "' WHERE id = e.Item.Cells[0].Text"; “/”应用程序中的服务器错误。--------------------------------------------------------------------------------第 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 运行到这里时,SQL语句的字符串的值是什么? 难道sql_edit没有值吗不可能 sqledit在抛出异常时的值是多少 是Name.Replace("'","''")值出问题了!!你把这个值替换成“'任一值'”再试验!如果没出错!就说明是Name.Replace("'","''")的值有问题!也许中间有双引号!!把单引号和双引号替换成中文中的单引号和双引号!! 在监视窗口中输入你想要查看的变量的名称,回车就行了还可以在局部变量的窗口中找到这个变量的值我用的是.net2003不过都差不多 你用Response.Write 把sql_edit打印出来肯定会惊奇地发现UPDATE tr" +"SET name看清楚没?这个SET前面应该有个空格啊!!! 单步调试,看一下输出出来的SQl语句是什么,再贴出来,建议你不要使用name关键字 不要用name做字段名啦。 比如表名为employee,那么字段名就用EName或者。。用关键字做字段名,今天也代码的时候麻烦多多 我在SET前加空格了,也把NAME给改了,可是还是同样的错误啊我想也可能是Name.Replace("'","''")出问题了,可是看不出来啊 把运行时的SQL语句贴出来看看 告诉你一个方法:在程序中写上:response.write sql_edit 然后把输出的sql_edit 字符串贴出来! 我用的是FrontPage编的啊,没有监视窗口,怎么办 name是SQL数据库系统的专用名词,不能用,如果用的话:如下[name],加对中括号 zl2006(巧郁) ,我换了,加了[],系统告诉我无效阿 homesos(竹篮打水) 非常感谢你这么耐心的指教,可要怎么才能打印,用Response.Write么 你试试吧,或者在执行语句之前,把sql_edit的值赋给一个标签或者文本框,按钮什么的还有就是最好能先把数据库中的字段名改掉,最好不要用与系统所专用名词,这个老早就说过了 打印不出来啊,只要一点击Update就抱错,头大ing…… 要不你就把具体执行SQL命令语句的那段去掉,只留组装SQL命令语句的部分,然后把它打印出来 把执行的语句去掉后,打印出来的就是我的sql命令 正常显示阿sql_edit = "UPDATE tr SET Name = '" + Name.Replace("'","''")+ "',addr = '" + addr.Replace("'","''")+ "' WHERE id = e.Item.Cells[0].Text"; 哎呀我是想让你把sql_edit的值打印出来,并不是把这个打印出来 是把将要执行的那个UPDATE语句打印出来 <asp:Label ID="trSQL" Runat="server"/>sqlCommandUpdate.ExecuteNonQuery();trSQL.Text='"+sqll_edit+"';请问,打印语句是这么写么, 要在写在sqlCommandUpdate.ExecuteNonQuery();之前吧直接把sql_edit赋给一个文本框要好一些吧,你好贴出来trSQL.Text=sqll_edit;行吗在那里面咋样我不清楚 你先把SQL的执行语句去掉或是注释掉 委托传参数 c#好学吗? C# SQL2000 查询%%请教 请各位看看,我的这段代码错在哪里呢? 请教,c#中快速排序的方法 按键传值问题 正则表达式 字体问题 Spread怎么设置某一指定单元格的字体。(在线等) c# 与 surfer12 画等值线图 数据库读取数据如何加快速度? xml问题
如果一定要用.可以这样[name]
System.Data.SqlClient.SqlException: 第 1 行: '0' 附近有语法错误。
还是在同一行处问题,这个‘0’是什么啊
String sql_edit = "UPDATE tr" +
"SET name = '" + name.Replace("'","''")+ "'," +
"addr = '" + addr.Replace("'","''")+ "'" +
" WHERE id = " + e.Item.Cells[0].Text;是不是在tr和set中间少了一个空格
--------------------------------------------------------------------------------第 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
不可能
如果没出错!就说明是Name.Replace("'","''")的值有问题!
也许中间有双引号!!把单引号和双引号替换成中文中的单引号和双引号!!
还可以在局部变量的窗口中找到这个变量的值
我用的是.net2003不过都差不多
UPDATE tr" +
"SET name看清楚没?
这个SET前面应该有个空格啊!!!
我想也可能是Name.Replace("'","''")出问题了,可是看不出来啊
然后把输出的sql_edit 字符串贴出来!
如果用的话:
如下[name],
加对中括号
homesos(竹篮打水) 非常感谢你这么耐心的指教,可要怎么才能打印,用Response.Write么
或者在执行语句之前,把sql_edit的值赋给一个标签或者文本框,按钮什么的
还有就是最好能先把数据库中的字段名改掉,最好不要用与系统所专用名词,这个老早就说过了
sql_edit = "UPDATE tr SET Name = '" + Name.Replace("'","''")+ "',addr = '" + addr.Replace("'","''")+ "' WHERE id = e.Item.Cells[0].Text";
我是想让你把sql_edit的值打印出来,并不是把这个打印出来
trSQL.Text='"+sqll_edit+"';请问,打印语句是这么写么,
sqlCommandUpdate.ExecuteNonQuery();
之前吧直接把sql_edit赋给一个文本框要好一些吧,你好贴出来
trSQL.Text=sqll_edit;行吗在那里面咋样我不清楚