err:读取数据库数据时老出现下列的错误,不知是什么原因!

richlu 2004-02-01 01:31:28
出错信息:参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

部分源码:
<!--#include file="top.asp" -->
<!--#indlude file="conn.asp"-->
<%
dim conid,rs,sql
conid=Request.QueryString("id")
set rs=server.CreateObject("adodb.recordset")
sql="select * from document where id="+cstr(conid)
rs.Open sql,conn,1,1
%>
...全文
60 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
richlu 2004-02-01
  • 打赏
  • 举报
回复
天那!原来是<!--#indlude file="conn.asp"-->这一句话的一个单词打错了“include”打成了“indlude”.浪费了一个下午的时间!感谢各位的帮助!
myte 2004-02-01
  • 打赏
  • 举报
回复
那就是你的IIS出问题了吧,
ASP文件一般是ANSI的,
你使用Interdev 6.0或者是Dreamweaver MX编写,不要使用记事本编写。
还是一样的话,我也没有办法了!
richlu 2004-02-01
  • 打赏
  • 举报
回复
对了,asp文件的编码是ANSI,还是unicode?
richlu 2004-02-01
  • 打赏
  • 举报
回复
还是一样!
myte 2004-02-01
  • 打赏
  • 举报
回复
把新建立一个ASP文件修改如下:(内容如下)
<!--#include file="top.asp" -->
<!--#indlude file="conn.asp"-->
<%
sql="select * from document"
rs.Open sql,conn,3,3

%>
richlu 2004-02-01
  • 打赏
  • 举报
回复
怪了,还是那个错误。。。
myte 2004-02-01
  • 打赏
  • 举报
回复
注销一下电脑;
关闭ACCESS数据库;
然后:
重新建立一个ASP文件:(内容如下)
<!--#include file="top.asp" -->
<!--#indlude file="conn.asp"-->
<%
sql="select * from document where id="&Cint(59)
rs.Open sql,conn,3,3

%>
然后测试;

richlu 2004-02-01
  • 打赏
  • 举报
回复
地址栏里打入该文件的路径,没出现错误的提示!
richlu 2004-02-01
  • 打赏
  • 举报
回复
不知该怎么调的?
myte 2004-02-01
  • 打赏
  • 举报
回复
用浏览器调试一下你的conn.asp,看是否出错!
richlu 2004-02-01
  • 打赏
  • 举报
回复
id 是长整形的
richlu 2004-02-01
  • 打赏
  • 举报
回复
id 是自动编号的,应该是数字型的把
richlu 2004-02-01
  • 打赏
  • 举报
回复
是access,

conn.asp文件内容如下:

<%
dim conn
dim connstr
on error resume next
connstr="DBQ="+server.mappath("data.asp")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
myte 2004-02-01
  • 打赏
  • 举报
回复
你的数据库的id是什么类型的?
richlu 2004-02-01
  • 打赏
  • 举报
回复
按照楼上的方法,加了id=59,试过了出现:select * from document where id=59
去掉response.end 后问题还是同样的错误。
myte 2004-02-01
  • 打赏
  • 举报
回复
Sql server 的还是Access;
1.如果是SQL server的,使用SQL 查询分析器直接对Sql语句进行调试;
2.检查你的rs.Open sql,conn,1,1 语句当中conn是否存在问题;
3. 把rs.Open sql,conn,1,1 改为rs.Open sql,conn,1,3

myte 2004-02-01
  • 打赏
  • 举报
回复
可以使用下列方法调试:
代码如下:
<!--#include file="top.asp" -->
<!--#indlude file="conn.asp"-->
<%
dim conid,rs,sql
conid=Request.QueryString("id")
set rs=server.CreateObject("adodb.recordset")
sql="select * from document where id=" //这儿写上你的数据库中已经存在的id编号;
response.write sql
response.end //如果没有错误;去掉response.write sql和 response.end; 继续调试
rs.Open sql,conn,1,1
%>
richlu 2004-02-01
  • 打赏
  • 举报
回复
IE提示:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

ADODB.Recordset 错误 '800a0bb9'

参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/newie/opencon.asp,行8
popcode 2004-02-01
  • 打赏
  • 举报
回复
try
sql="select * from [document] where id="&conid
myte 2004-02-01
  • 打赏
  • 举报
回复
同意楼上的,不过存在以下问题:

conid=Request.QueryString("id");
使用Querystring的请求方式请求的已经是String的类型了,
如果你的数据库的id的类型是int 类型而且是自增的;
应该使用下列语句:
sql="select * from document where id="&Cint(conid);

加载更多回复(6)

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧