页面用力 o>﹏<o 加载中...

在ASP中使用Dictionary对象遇到的一个问题


今天尝试使用了Dictionary对象,

Dim zjz
Set zjz = CreateObject("Scripting.Dictionary")

可是测试时总是提示错误:

错误类型:
ADODB.Field (0x80020009)
对象不再有效。

更改了很多次,试了很多方法,但还是不行。原来,问题在于rs对象中……

原因是Dictionary.Add方法可以将对象加入字典中;
而rs("psz_name")本身是Recordet对象;
Recordet对象的value属性是默认的属性,一般可以不写;
当response.Write rs("psz_name")或 xx= rs("psz_name")的时候
实际上编译器默认使用了 response.Write rs("psz_name").value或 xx = rs("psz_name").value
但当参数可以接受Variant类型时要根据需要指明是存放对象还是他的默认属性。

所以应该用 zjz.Add Cint(rszjz("psz_id").Value), rszjz("psz_name").Value

如果用 zjz.Add Cint(rszjz("psz_id")), rszjz("psz_name")

则在显示的时候要保证:
1、记录集未被关闭
2、光标在当前记录




文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Asp Dictionary 对象 问题
相关日志:
评论: 1 | 引用: 0 | 查看次数: 618
回复回复路人YM3778型[2010-05-05 11:17 AM | 上海市 电信(黄浦/卢湾区) | 成分分析 | del]
正解啊,正解,我用session对象也出现这个问题,session(“”)=rs(“”)就不行,用session(“”)=rs(“”).value就可以
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: = 1 + 7
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭