ASP RS提交的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 01:30:51
有个数组 shuzu(0) shuzu(1) shuzu(2)
里面装着一个值a b c
------------------------------------------------
数据库zhi结构为:
id 数字
a 数字
b 数字
c 数字
------------------------------------------------
我想在数据库里面把他们的值加一
Set rs = Server.CreateObject( "ADODB.Recordset")
sql="select * from zhi where id=1"
rs.open sql,conn,1,3
for i=0 to 2
rs(shuzu(i))=rs(shuzu(i))+1
next
rs.update
rs.close
set rs=nothing
================================================
这样做为什么不对呢
这行rs(shuzu(i))=rs(shuzu(i))+1
提示错误 '80020009'
ADODB.Recordset 错误 '800a0cc1'
在对应所需名称或序数的集合中,未找到项目。

提示的错误是这个

这个问题很简单,这个提示表示你库中并没有rs("shuzu(i)")这个字段

除非你库中都有这样的字段才能这样表示

I从0到2 也就是说
你rs(shuzu(i))=rs(shuzu(i))+1
等于
rs(shuzu(0))=rs(shuzu(0))+1
rs(shuzu(1))=rs(shuzu(1))+1
rs(shuzu(2))=rs(shuzu(2))+1

通常ASP中使用字段名的多,比如rs("ID"),你这里使用了域的感念获取的数据,比如rs(0),也就是说,表中第一个字段对应的数字域号是0。

ASP中数组的脚标是从0开始的,就是说,你定义了一个1维数组是shuzu(2)的话,它的值分别是shuzu(0)=,shuzu(1)=,shuzu(2)=

所以你的循环应该这样写:
for i=0 to 2
或者
for i=0 to UBound(shuzu)
但是,你的数据库的0、1、2域对应的字段名必须是shuzu(0)=,shuzu(1)=,shuzu(2)=的值是一样的