javascript的数组获得数据库里的值,为何不能用呢??
<%@LANGUAGE= "JAVASCRIPT " CODEPAGE= "936 "%>
<%
var total=new Array(6);
var i=0,sum=0;
var rs1= Server.CreateObject( "ADODB.RecordSet ");
var str = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source= "+Server.MapPath( "tp.mdb ");
var Conn=Server.CreateObject( "ADODB.Connection ");
Conn.Open(str);
var sql= "select * from tbltp ";
rs1.Open(sql,Conn,3,3);
while(!rs1.EOF){
sum=sum+rs1( "record ");
total[i]=rs1( "record ");
Response.Write(i)
Response.Write(total[i]+ " <br/> ");
i=i+1;
rs1.MoveNext;
}
Response.Write(i);
// Response.Write(total[0]); //注释1
rs1.Close;
%>
<%=sum%> //非注释1
// <%=totla[1]%> //注释2
--------------------------
1,上面这段程序如果用“非注释1”则可以输出sum的值。
2,如果用“注释1”这个输出,则出现错误:
Error Type:
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
3,如果用“注释2”这句,则出现错误:
Error Type:
ADODB.Field (0x80020009)
Object is no longer valid.
---------------
1,我的数据库中只有四条纪录,所以我在数组的声明中 Array(n) 的n 测试过用大一点的都不行。
2,我在while循环中试着打出 i 和 total 的各个值都是没有问题的,i 是从0到3的,而且total[0] 到 total[3]的值是我要的各条纪录的值。
但是为何total的数组到了while循环外就打不出来了呢?而sum值却没问题!!!
谢谢救命啊~~~!~!~!~!
------解决方案--------------------total[i]=rs1( "record ")+ " ";
------解决方案--------------------很简单...
rs1( "record ") 属于 对象...
对象都是按引用的...
在 rs1.Close; 后.
rs1 的所有东西就被你 null 了
之后再引用当然是空了...
原字串都是按值的, 比如 字串, 数字...
rs1( "record ")+ " " 是把对象转换为字串..