Arrays ASP会话变量和数组分配

Arrays ASP会话变量和数组分配,arrays,asp-classic,session-variables,Arrays,Asp Classic,Session Variables,我有一个关于会话变量和数组分配的问题 我有一个10行20列的二维数组。那么示例1不起作用,示例2起作用: 例1: session('anAr')(5, 10) = 'ab' response.Write '<br>The new value is ' & session('anAr')(5, 10) session('anAr')(5,10)='ab' 响应。写入'新值为'&session('anAr')(5,10) 会话('anAr')(5,10)的新值打印为空字符串

我有一个关于会话变量和数组分配的问题

我有一个10行20列的二维数组。那么示例1不起作用,示例2起作用:

例1:

session('anAr')(5, 10) = 'ab'
response.Write '<br>The new value is ' & session('anAr')(5, 10)
session('anAr')(5,10)='ab'
响应。写入'
新值为'&session('anAr')(5,10)
会话('anAr')(5,10)的新值打印为空字符串

例2:

dim localAr: localAr = session('anAr')
locarAr(0)(5, 10) = 'abc'
session('anAr') = localAr
response.Write '<br>The new value is ' & session('anAr')(5, 10)
dim localAr:localAr=session('anAr'))
locarAr(0)(5,10)=“abc”
会话('anAr')=localAr
响应。写入'
新值为'&session('anAr')(5,10)
现在,会话('anAr')(5,10)的更新已经完成

虽然它可以工作,但我认为问题在于所有的
会话('anAr')
首先被复制到localAr,然后所有localAr被复制到
会话('anAr')

请专家告诉我,是否有任何方法可以在不将会话数组复制到本地数组的情况下修改
会话('anAr')(5,10)
不幸的是,没有。您必须使用本地数组

如果在会话对象中存储数组,则不应尝试 直接更改存储阵列的元素。例如 以下脚本不起作用:

前面的脚本无法工作,因为会话对象为 作为集合实现。数组元素StoredArray(3)不存在 接收新值。相反,该值被索引到 集合,覆盖存储在该位置的任何信息

强烈建议如果在会话中存储数组 对象,则在检索或更改之前检索数组的副本 数组的任何元素。当您使用完 数组,则应再次将该数组存储在会话对象中,以便 将保存所做的任何更改,如下所示 例如:



mAn,在您的第一个示例中,您将日期存储在会话变量
anA
中,但从会话变量
anAr
中读取数据。很抱歉,我不明白您想告诉我什么。您能详细说明一下吗?
session('anA')(5,10)='ab'
——您正在用名称
anA
将数据(值)保存在session变量中,对吗?但在下一行中,您将尝试从名为anAr的会话变量读取数据(值)。你看,你正在从不同的变量读取数据。换句话说:对于你的第一个样本,将
session('anA')(5,10)='ab'
更改为
session('anAr')(5,10)='ab'
。很抱歉,这只是我问题中的一个印刷错误。我总是在考虑anAr和数组名。如果你只使用一个名字来测试这个例子,你就知道我的意思了。谢谢你的回答。你给我写的信息是我的问题是什么,我希望找到一条出路。但不幸的是,正如您所写的,除了在本地阵列中复制会话阵列的资源之外,没有其他解决方案。