ADODB.Recordset 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ADODB.Recordset 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。相关的知识,希望对你有一定的参考价值。

下面是代码:
<!--#include file="con1.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
.as
border: 1px solid #CCCCFF;
list-style-type: none;
display: table;
color: #FF0000;
text-decoration: blink;
font-size: 12px;

-->
</style>
</head>

<body>
<div align="center">
<%dim sqld,rs1,curpage
set rs1=server.CreateObject("adodb.recordset")
sqld="select * from sy"
rs1.pagesize=4
rs1.open sqld,con1,1,3
curpage=Request.QueryString("curpage")
rs1.absolutepage=cint(curpage) ////就是这行报错:参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。把他去掉又能够运行,
for i= 1 to rs1.pagesize
if rs1.eof and rs1.bof then
response.Write("没有记录")
response.End()
exit for
end if%>
<%
j=j+1
if j mod 2=0 then
bg="#F1EAF4"
else
bg="#D7E1DE"
end if

%>
<fieldset>
<legend></legend>
<table width="516" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor=<%=bg%> class="as">
<tr>
<td><p>姓名:<a href="?content&id=<%=rs1("id")%>"><%=rs1("aa")%></a></p>
<p>内容:<%=rs1("bb")%></p></td>
</tr>
</table>
</fieldset>
</div>
<div align="center"><br>

<% rs1.movenext
next %>

<%response.Write("共"&rs1.pagecount&"页")%>
 
<%response.Write("当前第"&curpage&"页")%>
</div>
<p> </p>
<table width="150" height="15" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCCFF">
<tr>
<td><% for i=0 to rs1.pagecount-1
page=i+1
%>
<a href="?curpage=<%=page%>"><%=page%></a>
<%
next
%></td>
</tr>
</table>

</body>
</html>
各位大虾应该怎么改,或者是那里错了 ,回答详细点啊 ,

参考技术A curpage=Request.QueryString("curpage")
应该是这里引起的
没有传参数Request.QueryString("curpage")
或传递的参数不是数字
造成进行rs1.absolutepage=cint(curpage)
的时候报错

建议curpage=Request.QueryString("curpage")后判断一下curpage的值再做处理 如:curpage为空 就赋给一个默认值
参考技术B <%dim sqld,rs1,curpage
set rs1=server.CreateObject("adodb.recordset")
sqld="select * from sy"
rs1.pagesize=4
rs1.open sqld,con1,1,3
curpage=Request.QueryString("curpage")
if curpage="" then curpage="1" end if
rs1.absolutepage=cint(curpage)本回答被提问者采纳

无法将“ADODB.Recordset”类型的对象转换为“MSDATASRC.DataSource”类型

【中文标题】无法将“ADODB.Recordset”类型的对象转换为“MSDATASRC.DataSource”类型【英文标题】:Unable to cast object of type 'ADODB.Recordset' to type 'MSDATASRC.DataSource' 【发布时间】:2012-11-27 15:29:34 【问题描述】:

我有一个将 Vb6 迁移到 c#.net 的项目。当我运行这个 c# 解决方案时,我得到了一个 InvalidCastException,例如 Unable to cast object of type 'ADODB.Recordset' to type 'MSDATASRC.DataSource'

在语句DataGrid1.DataSource = (MSDATASRC.DataSource)(object)(Module1.rs);.

其中rs生成如下: 公共静态 ADODB.Connection conn = null; 公共静态 ADODB.Recordset rs = null;

     conn = new ADODB.Connection();
     conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "\\myDatabase.mdb;Persist Security Info=False",String.Empty,String.Empty,-1);

     rs = new ADODB.Recordset();         
     rs.ActiveConnection = conn;
     rs.CursorLocation = (ADODB.CursorLocationEnum)(MSAdodcLib.CursorLocationEnum.adUseClient);
     rs.CursorType = (ADODB.CursorTypeEnum)(MSAdodcLib.CursorTypeEnum.adOpenDynamic);
     rs.LockType = ADODB.LockTypeEnum.adLockOptimistic;
     rs.Source = "SELECT * FROM MyTable";

     rs.Open(null,null,ADODB.CursorTypeEnum.adOpenUnspecified,ADODB.LockTypeEnum.adLockUnspecified,-1);

谁能帮我解决这个问题。

【问题讨论】:

【参考方案1】:

尝试:

 DataGrid1.DataSource = DataGrid1.DataSource = (MSDATASRC.DataSource)(object)(Module1)

【讨论】:

嗨,Oscar,我尝试使用您的代码,但出现错误,例如**'Project1.Module1' is a 'type' but is used like a 'variable'** 我试过这样 DataGrid1.DataSource = (MSDATASRC.DataSource)(object)(Module1.rs.Source);。现在我可以加载页面,但我无法从表中获取记录。

以上是关于ADODB.Recordset 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。的主要内容,如果未能解决你的问题,请参考以下文章

错误类型:ADODB.Recordset (0x800A0E79) 对象打开时不允许操作

由于空格,ADODB.Recordset 到 SQL Server 查询失败

PHP ODBC 创建数据库 返回 ADODB.Connection 错误 '800a0e7a'

VBA 将整个 ADODB.Recordset 插入表中

无法将“ADODB.Recordset”类型的对象转换为“MSDATASRC.DataSource”类型

如何从此 ADODB.Recordset 中获取插入 ID?