recordset("列名"),如果列名是变量的话该如何表示?

chilun 2011-04-26 08:04:41
如题。

打开数据库
……
a = username

b = rs(""&a&"")

每次执行到这里都提示如下错误:

ADODB.Recordset 错误 '800a0cc1'

在对应所需名称或序数的集合中,未找到项目。

===输出a的值发现没有任何错误

在线求解答~请各位不吝赐教!
...全文
187 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chilun 2011-04-26
  • 打赏
  • 举报
回复
to lzp4881
实在抱歉,多谢热心解答~
lzp4881 2011-04-26
  • 打赏
  • 举报
回复
没有问题怎么会报错呢?
你要别人给你解决问题,又舍不得把相关信息贴出来,无语。
chilun 2011-04-26
  • 打赏
  • 举报
回复
输出没有问题的~算是绕过这个问题了。
lzp4881 2011-04-26
  • 打赏
  • 举报
回复
输出来看看是什么?
chilun 2011-04-26
  • 打赏
  • 举报
回复
是一个字符串,类似 a_b_c_d包含一个以上的下划线
lzp4881 2011-04-26
  • 打赏
  • 举报
回复
zhibiao的值是什么?
chilun 2011-04-26
  • 打赏
  • 举报
回复
查询语句是这样的
sr1 = "select top 12 "&zhibiao&" from indexs order by indexs_adddate desc"
应该是没问题的吧
哎,只怪一直学得不精,总想着随便写,出错再改,结果遇到比较奇怪的错误就彻底懵了。
hongmei85 2011-04-26
  • 打赏
  • 举报
回复
“查询时只选了变量这个字段”,这个你是怎么写那个sr1的?估计十有五六是这里错了
chilun 2011-04-26
  • 打赏
  • 举报
回复
to hongmei85

我确认值没有问题,在这句代码之前也是用这个变量从数据库里查询的,查询时只选了变量这个字段,后来我改成查询全部字段,错误莫名其妙就没有了……不知何故
该段完整代码如下:

set rs = server.CreateObject("adodb.recordset")
sr1 = "select top 12 * from indexs order by indexs_adddate desc"
rs.open sr1,conn,1,1
if not(rs.bof or rs.eof) then
for x = 0 to 11
if not(rs.bof or rs.eof) then
arr_dangyue(x) = rs(""&zhibiao&"")
response.Write arr_dangyue(x)&"</br>"
else
arr_dangyue(x) = 0
end if
if not(rs.bof or rs.eof) then
rs.movenext
end if
next
end if
set rs = nothing

其目的是从数据库中查询这个字段最新的12个值保存到数组里,如果查询到的值不够12个,就在数组剩下的位置补0,但是最后运行的结果是运行到数据集完就结束了,没有补0
lzp4881 2011-04-26
  • 打赏
  • 举报
回复
应该是
a = "username"
execute("b = rs("""&a&""")")
hongmei85 2011-04-26
  • 打赏
  • 举报
回复
a = username
这里是说a和username的值相同,如果username的值为“1”,“小光”之类的,a也是“1”,“小光”,rs(""&a&"")变为rs("小光")就会出错



故你一定要确认response.write(a)是多少
hongmei85 2011-04-26
  • 打赏
  • 举报
回复
response.write(a)是多少呀,""&a&""没有问题,只要你的这个a是个字符串
chilun 2011-04-26
  • 打赏
  • 举报
回复
回2楼的朋友,数据库的字段确实存在,输出a的值也没有问题。估计问题应该在rs(""&a&"")这里的引号上吧
lzp4881 2011-04-26
  • 打赏
  • 举报
回复
a = "username"
execute("b = rs(""&a&"")")
chilun 2011-04-26
  • 打赏
  • 举报
回复
1楼的朋友,貌似不行哦
为什么要execute呢
hongmei85 2011-04-26
  • 打赏
  • 举报
回复
response.write(a)是多少

如果是a = "username"
b = rs(""&a&"")

sql里面有username这一列吗
lzp4881 2011-04-26
  • 打赏
  • 举报
回复
execute("b = rs(""&a&"")")

28,390

社区成员

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

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