• javascript學習指南_javascript使用getrows方法數組轉換函數

    更新時間:2014-04-10    來源:學習總結    手機版     字體:

    javascript學習指南_javascript使用getrows()方法數組轉換函數

    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

    下面我們來將它拆分成二維數組,我寫了一個函數來實現:

    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;i<cols;i++){
    arr2[i] = new Array();
    for(var j=0;j<rows;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;i<recN;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;i<len;i++) {
     
                    data[i]=new Array();
     
                    sp=i*fieldslen;
     
                    for(var j=0;j<fieldslen;j++)
     
                            data[i][j]=arr[sp+j];
     
            }
     
            return data;
     
    }
     
    </scr pt>
     

    本文來源:http://www.lsjse.com/gongzuozongjie/55805.html

    猜你感興趣

    亚洲日韩精品无码一区二区三区| 精品深夜AV无码一区二区老年| 91精品视频观看| 久久精品国产亚洲AV| 日韩精品区一区二区三VR| 精品福利一区二区三区| 国产精品亚洲专区无码牛牛| 久久夜色精品国产噜噜噜亚洲AV| 亚洲视频在线精品| 无码人妻精品一区二区三| 久久99精品免费一区二区| 日本加勒比在线精品视频| 国产午夜亚洲精品| 久久精品无码专区免费青青| 色妞WWW精品免费视频| 国产精品亚洲综合五月天| 久久九九久精品国产日韩经典| 国产在线精品一区二区三区不卡| 日韩精品无码人妻一区二区三区 | 成人久久伊人精品伊人| 国产精品免费观看| 婷婷精品国产亚洲AV麻豆不片 | 亚洲国产精品一区第二页| 精品无码国产污污污免费网站国产 | 精品女同一区二区三区免费站| 亚洲αv在线精品糸列| 国产午夜精品一本在线观看| 国产A∨国片精品一区二区| 国产伦精品一区二区三区四区| 国自产精品手机在线视频香蕉| 国产精品视频白浆合集| 国产韩国精品一区二区三区久久| 久久久无码人妻精品无码| 久久9精品久久久| 少妇精品无码一区二区三区| 久99久热只有精品国产男同| 久久国内精品自在自线软件| 久久精品影院永久网址| 久久精品私人影院免费看| 亚洲AV无码成人网站久久精品大| 国产精品186在线观看在线播放 |