这一段asp代码为什么报错呢

来源:百度知道 编辑:UC知道 时间:2024/06/25 18:52:43
以下这段代码执行后报错:

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'id=' 中。
/rs/modi.asp, 第 8 行

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("test.mdb")//这不是以前的一个数据库,里面就aa,bb两个字段
exec="select * from test where id="&request.querystring("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn
%>
<form name="form1" method="post" action="modifysave.asp">
<table width="748" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>aa</td>
<td>bb</td>
</tr>
<tr>
<td>
<input type="text" name="aa" value=

{你把request.querystring("id") 放到set conn=server.createobject("adodb.connection") 上面去
例如:xhl=request.querystring("id")
再执行看看
exec="select * from test where id=id=" & xh1 )
}
他说的这个应该再加个判断语句,跳过没有ID返回值情况就行了.上面说的这种方法只是,在加了个变量,和你的效果应该一样.关键是怎么处理ID没有值的情况,我的建议是在获得返回值那句后加个IF语句,如果返回值为空的话,不让执行查询,有值的话,在查询,而且在有值的情况下,在执行了查询后仍然有可能查不到值,为避免出错,你还的给个查找数据为空的判断语句.如.IF NOT RS.EOF THEN
END IF

exec="select * from test where id='"&request.querystring("id")&"'"

你把request.querystring("id") 放到set conn=server.createobject("adodb.connection") 上面去
例如:xhl=request.querystring("id")
再执行看看
exec="select * from test where id=id=" & xh1

因为你request.querystring("id")的值为空或类型不对

正规的写法应 改成这
exec="select * from test where id='"&request.querystring("id")&"'"