先天性甲低能治好吗:我这段asp程序运行不了。。高人帮着看看啊

来源:百度文库 编辑:高考问答 时间:2024/05/05 05:26:17
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("test.mdb")
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="<%=rs("aa")%>">
</td>
<td>
<input type="text" name="bb" value="<%=rs("bb")%>">
<input type="submit" name="Submit" value="提交">
<input type="hidden" name="id" value="<%=request.querystring("id")%>">
</td>
</tr>
</table>
</form>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
错误类型:
出现如下错误提示:

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

请贴出错误提示
确认你的SQL语句和数据库限制一致
rs.open exec,conn ,1,3
1,3参数可根据需要修改

确认一下ID是否得到值,
a=request.querystring("id")
response.write a

如果a为空,也会出现那样的错误。
加判断,
if a<>"" or a<>null then
exec="select * from test where id="&request.querystring("id")
else
提示前一个页面的输入
end if

再进行以下操作。

request.querystring("id")

这个页面需要获得一个ID,这个ID如果不在数据库中存在的话,会报错的。。。

页面中没有关于错误处理的部分。。

应该在rs.open exec,conn 下面加个

if rs.eof of rs.bof then
跳转到出错页面
end if

exec="select * from test where id="&request.querystring("id")
有的时候这么写是不行滴
改成exec="select * from test where id='"&request.querystring("id")&"'"
跟着 finger99我也长点见识 以前只知道该这么写 原因不清楚 原来 是数据类型的原因

错误在第三行
exec="select * from test where id="&request.querystring("id")

两种可能性:
1.test表中无id字段或者id字段类型为字符类型,此时exec应改为
exec="select * from test where id='"&request.querystring("id")&"'"
2.request.querystring("id")为空,此时查询表达式exec="select * from test where id=" 会报错

从这两个方面试试看吧,祝好运!:)

先定义一个变量 取得id值 进行判断是否传进来这个id值