导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

为什么总是出现错误

QuickPai 2008-11-01 06:36:35
代码:
<!-- #include file="conn.asp" -->
<!-- #include file="top.asp" -->
<%
'取得记录标识
cl=Request.QueryString("class")
no=Request.QueryString("no")
Set rs=Server.CreateObject("ADODB.RecordSet")
sql="Select * From t_student Where d_class=" & cl & " and d_no=" & no & ""
rs.Open sql,conn,1,3
'修改记录值
if not rs.eof then
rs("d_class")=Trim(request.form("class"))
rs("d_no")=Trim(request.form("no"))
rs("d_name")=Trim(request.form("username"))
rs("d_sex")=Trim(request.form("sex"))
rs("d_birthday")=Trim(request.form("birthday"))
rs("d_phone")=Trim(request.form("phone"))
rs("d_address")=Trim(request.form("address"))
rs("d_dw")=Trim(request.form("dw"))
rs("d_email")=Trim(request.form("email"))
rs("d_memo")=Trim(request.form("memo"))
'执行更新操作
rs.Update
end if
%>


出错:
错误类型:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
在关键字 'and' 附近有语法错误。
/modify.asp, 第 9 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)

网页:
GET /modify.asp

请问是为什么?
帮我改改,谢谢!
...全文
64 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Azz1 2008-11-02

sql="Select * From t_student Where d_class=" & cl & " and d_no=" & no & ""
改为
sql="Select * From t_student Where d_class='" & cl & "' and d_no='" & no & "'"
试试
回复
QuickPai 2008-11-02
我自己下午找到原因了
是因为我用的是QueryString来传递值
所以form中的method必须用get
而我先前用的是post
所以不好意思
但是还是谢谢大家的帮助
谢谢!
回复
Awen_Q 2008-11-02
如果是值是字符串类型的要记住加单引号啊
回复
menjianguo 2008-11-02
既然可以在数据库查询分析器里运行(这个问题我也遇到过),
那说明就是sql语句中''和"" 用法错误。
答案已经出来了,自己在看着改一下吧!
祝你好运!
回复
QuickPai 2008-11-02
[Quote=引用 7 楼 Azz1 的回复:]

sql="Select * From t_student Where d_class=" & cl & " and d_no=" & no & ""
改为
sql="Select * From t_student Where d_class='" & cl & "' and d_no='" & no & "'"
试试
[/Quote]
要是这样的话,是没有错误
但是用response.write(sql)输出的是:Select * From t_student Where d_class='' and d_no=''
回复
simson2010 2008-11-01
在Modify处打印出来的查询语句复制看看,
或尝试在输出的<a>标签中先不向参数预加入单引号,等到Modify页面接收后,再向查询语句中加入单号.
回复
QuickPai 2008-11-01
我都已经在数据库查询分析器里运行了
sql语句对的
可是一运行就错误
下面是cl和no:
Response.Write"<td><a href=update.asp?class='"&trim(rs("d_class"))&"'"&chr(38)&"no='"&trim(rs("d_no"))&"'>修改</a></td>"
d_class和d_no是数据库里的字段名,分别代表班级和学号,char(5)和char(2)
然后在这里就用querystring传递的
已经查过了 不是sql语句的原因
回复
冷月孤峰 2008-11-01
楼主应该发到ASP板块去。

在关键字 'and' 附近有语法错误。
已经告诉你了,是SQL语句有问题
回复
Liu_Qiang 2008-11-01
cl 你检查一下这个变量的值。

把sql语句打印出来,看看SQL语句哪边报错的

回复
bossma 2008-11-01
SQL语句不正确,可能存在的问题:
1、使用了SQL关键字
2、构造SQL的字符串含有可能导致SQL不能解析的字符
回复
还想懒够 2008-11-01
你的SQL语句错了,检查cl和no
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告