| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 728 人关注过本帖
标题:一个数组的问题
只看楼主 加入收藏
zhanxinlin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:96
专家分:156
注 册:2010-5-19
结帖率:92.86%
收藏
已结贴  问题点数:10 回复次数:7 
一个数组的问题
一个数组的问题
我需要把数据库中所查询到的数据存放在数组中,所以数组的数量无法确认,于是把查询到的数量直接赋给数组,运行时提示“缺少整型常数”,语句“dim selectname(countrs2)”。我把此语句改成dim selectname(50)则可正常显示。有没有办法让数组可以不指定直接数量。部分代码如下:


Set rs2=Server.CreateObject("ADODB.Recordset")
sql2 ="select a_name from admin"
rs2.open sql2,conn,1,1
countrs2=rs2.recordcount
dim selectname(countrs2)
for selectlist=1 to countrs2
selectname(selectlist)=rs2("a_name")
rs2.movenext
next
搜索更多相关主题的帖子: 数据库 admin 
2011-03-31 00:14
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
收藏
得分:0 
dim selectname()

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2011-03-31 08:00
zhanxinlin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:96
专家分:156
注 册:2010-5-19
收藏
得分:0 
以下是引用hams在2011-3-31 08:00:38的发言:

dim selectname()

这个也已经试过,显示不出数据,不知为什么。
2011-03-31 14:32
dzt0001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1281
专家分:4998
注 册:2005-10-12
收藏
得分:0 
Recordset对象的游标/锁定类型不支持Recordcount,改成1,3试试

[ 本帖最后由 dzt0001 于 2011-3-31 15:42 编辑 ]

----我怎能在别人的苦难面前转过脸去----
2011-03-31 15:38
zhanxinlin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:96
专家分:156
注 册:2010-5-19
收藏
得分:0 
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
<html xmlns="http://www.
<!--#include file="conn.asp"-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<select name="co" size="1" id="co">
<%
Set rs2=Server.CreateObject("ADODB.Recordset")
sql2 ="select a_name from admin"
rs2.open sql2,conn,1,1
countrs2=rs2.recordcount
dim selectname(countrs2)
for selectlist=1 to countrs2
selectname(selectlist)=rs2("a_name")
rs2.movenext
next
rs2.close
set rs2=nothing
for selectlist1=1 to countrs2
%>
      <option><%=selectname(selectlist1)%></option>
<%next%>
    </select>
</body>
</html>


大家可以试试这些代码
2011-03-31 15:45
zhanxinlin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:96
专家分:156
注 册:2010-5-19
收藏
得分:0 
以下是引用dzt0001在2011-3-31 15:38:27的发言:

Recordset对象的游标/锁定类型不支持Recordcount,改成1,3试试



1,3似乎也只是锁定类型的变更,在本程序中,1,1应该也没什么影响。我试着把1,1改成1,3之后发现事情没什么变化。事实上证明,Recordset对象的游标/锁定类型是支持Recordcount的,因为本程序中的如下语句能正确执行
for selectlist=1 to countrs2
2011-04-02 00:21
dzt0001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1281
专家分:4998
注 册:2005-10-12
收藏
得分:10 
搞错了搞错了,2,1是不行的,Recordcount=-1,你用1,1是可以的

问题找到了。你把dim selectname(countrs2)这句的dim改成redim就没问题了

----我怎能在别人的苦难面前转过脸去----
2011-04-02 09:09
zhanxinlin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:96
专家分:156
注 册:2010-5-19
收藏
得分:0 
问题解决

附上查到的资料

REDIM
   ReDim 为数组变量重新分配存储空间。可选项修饰符 Preserve 当仅更改最后一个维度的大小时,用来保留现有数组中的数据。
  使用 ReDim 语句来更改某个已声明数组的一个或多个维度的大小。如果有一个较大的数组,并且您不再需要它的某些元素,ReDim 可通过减小数组大小来释放内存。另一方面,如果代码确定某个数组需要更多元素,ReDim 也可以添加它们。
  ReDim 语句仅适用于数组。它在标量(只包含单一值的变量)、集合或结构上是无效的。
  仅可以在过程级使用 ReDim。这意味着,变量的“声明上下文”必须是过程,而不能是源文件、命名空间、接口、类、结构、模块或块。
  例如:
  有一个Byte数组A,如果我们知道这个数组上限最大只能是4,就用Dim
  Dim A As Byte(4)
  但如果我们不能事先确定它的大小,或者需要在运行时改变它的大小就要用动态数组
  Dim A As Byte()
  ReDim A(4)'这样改变大小时会清空原来的数据
  ReDim Preserve A(4)'这样改变大小时会保留原来的数据
2011-04-02 09:43
快速回复:一个数组的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040121 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved