九象范文网>工作总结>学习总结>javascript使用getrows()方法数组转换函数

javascript使用getrows()方法数组转换函数

VBScript可以自动将getRows返回的值转换成一个二维数组,但JavaScript没有二维数组,我们只能通过toArray将其返回的值先转换成一维数组,然后再进行转换成类似VBScript的二维数组。

我们先来分析下toArray后数组中的内容,有如下一张表(T_Users):

idusernameuserpass
1adminadmin888
2dnawo66666
使用toArray()后数组的内容如下:

arr[0] = 1 arr[1] = admin arr[2] = admin888 arr[3] = 2 arr[4] = dnawo arr[5] = 66666

下面我们来将它拆分成二维数组,我写了一个函数来实现:

function RecordToArray(oRs){ if(typeof(oRs) == "object"){ var arr = ors.getRows(-1).toArray();//用toArray转为数组 var arr2 = new Array(); var cols = ors.fields.count;//列 var rows = arr.length/cols;//行 for(var i=0;icols;i++){ arr2[i] = new Array(); for(var j=0;jrows;j++){ var k = rows*i+j; arr2[i][j] = arr[k]; } } return arr2; }else{ return ""; } }

使用举例:

% try{ var conn = new ActiveXObject("ADODB.Connection"); var rs = new ActiveXObject("ADODB.RecordSet"); conn.connectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + Server.MapPath("db1.mdb"); conn.open(); }catch(e){ Response.write("数据库连接出错!"); Response.End(); } rs.open("T_Users",conn,1,1); if(!rs.eof){ var arr = new Array(); arr = RecordToArray(rs); } rs.close rs = null; conn.close; conn = null; %

sc ipt language="JScript" runat="server"// code by xujiwei// http://www.xujiwei.cn/// 定义变量var conn,rs,vdata,data,recN,i;// 连接数据库conn=Server.CreateObject("ADODB.Connection");conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Server.MapPath("data.mdb"));// 获取记录集rs=conn.Execute("SELECT id,first,second FROM test");// 获取数据数组,并转换成为JScript中可用的数组类型vdata=rs.GetRows().toArray();// 获取数据表的字段数i=rs.Fields.Count;// 关闭记录集,释放对象rs.Close();rs=null;// 转换数组data=transArray(vdata,i);// 获取记录数recN=data.length;// 循环输出数据for(i=0;irecN;i++) { // 注意,数组下标从0开始 // 显示数据库中数据 Response.Write("ID: "+data[i][0]+", First: "+data[i][1]+ ", Second: "+data[i][2]+"br /");}// 关闭数据库连接,释放对象conn.Close();conn=null;

// 数组转换函数// by xujiwei// 参数:arr - GetRows方法得到的对象用toArray方法得到的数组// fieldslen - 数据表字段数function transArray(arr,fieldslen) { var len=arr.length/fieldslen,data=[],sp; for(var i=0;ilen;i++) {data[i]=new Array(); sp=i*fieldslen; for(var j=0;jfieldslen;j++) data[i][j]=arr[sp+j]; } return data;}/scr pt

电脑版 | 手机版 | 返回顶部

javascript使用getrows()方法数组转换函数声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。