【javascript使用getrows()方法数组转换函数】 javascript中的数组
VBScript可以自动将getRows返回的值转换成一个二维数组,但JavaScript没有二维数组,我们只能通过toArray将其返回的值先转换成一维数组,然后再进行转换成类似VBScript的二维数组。   
我们先来分析下toArray后数组中的内容,有如下一张表(T_Users):   
idusernameuserpass1adminadmin8882dnawo66666使用toArray()后数组的内容如下:
arr[0] = 1 arr[1] = admin arr[2] = admin888 arr[3] = 2 arr[4] = dnawo arr[5] = 66666   
rows函数的使用方法及实例
下面我们来将它拆分成二维数组,我写了一个函数来实现:   
function RecordToArray(oRs){ if(typeof(oRs) == "object"){ var arr = Rows(-1).toArray();//用toArray转为数组 var arr2 = new Array(); var cols = unt;//列 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"); tionString = "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// www.xujiwei/// 定义变量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]+"p /");}// 关闭数据库连接,释放对象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   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。