来自 计算机编程 2019-12-29 05:22 的文章
当前位置: 澳门威尼斯人平台 > 计算机编程 > 正文

asp中在JScript中使用RecordSet对象的GetRows

写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法。 在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方法,把记录集对象转换成数组,而操作数组在速度上将比用RecordSet对象的MoveNext方法快很多,而且可以在取出数组后尽早释放RecordSet对象,从而减少资源的占用,这也是优化ASP性能的一个方法。 在VBScript里,用RecordSet.GetRows方法取到的是一个二维数组,里面的数据可以通过遍历数组的方式来取得。 假设现在有一个数据库,其中有一个表名为mytable,有3个字段,名称分别为id,first,second。 复制代码 代码如下:'codebyxujiwei ' '定义变量 Dimconn,rs,data,recN,i '连接数据库 Setconn=Server.CreateObject("ADODB.Connection") conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&_ Server.MapPath("data.mdb") '获取记录集 Setrs=conn.Execute("SELECTid,first,secondFROMmytable") '获取数据数组 data=rs.GetRows() '关闭记录集,释放对象 rs.Close() Setrs=Nothing '获取记录数 recN=UBound(data,2) '循环输出数据 Fori=0TorecN '注意,数组下标从0开始 '显示数据库中数据 Response.Write("ID:"&data(0,i)&",First:"&data(1,i)&_ ",Second:"&data(2,i)&"br/") Next '关闭数据库连接,释放对象 conn.Close() Setconn=Nothing % 但是在JScript使用时,就会有一个问题,那就是JScript并没有二维数组,如果要用GetRows所获取的数据,必要将这个VBScript中的二维数组转换成JScript能识别的数组,即元素为数组的一个一维数组。 在JScript里,用GetRows方法获取的数组有一个toArray方法,可以转换成JScript中能用的数组,但是这个数组是一维的,也就是说,如果要像在VBScript一样使用的话,还需要我们自己来做转换。 查阅了MSDN及在网上搜索了相关的文章之后,我写了一个数组转换的函数用于在JScript中使用GetRows方法。 复制代码 代码如下:scriptlanguage="JScript"runat="server" //codebyxujiwei // //定义变量 varconn,rs,vdata,data,recN,i; //连接数据库 conn=Server.CreateObject("ADODB.Connection"); conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+ Server.MapPath("data.mdb")); //获取记录集 rs=conn.Execute("SELECTid,first,secondFROMtest"); //获取数据数组,并转换成为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; //数组转换函数 //byxujiwei //参数:arr-GetRows方法得到的对象用toArray方法得到的数组 //fieldslen-数据表字段数 functiontransArray(arr,fieldslen){ varlen=arr.length/fieldslen,data=[],sp; for(vari=0;ilen;i++){ data[i]=newArray(); sp=i*fieldslen; for(varj=0;jfieldslen;j++) data[i][j]=arr[sp+j]; } returndata; } /script 对于一些更新频率不高,而使用次数比较多的数据,可以在成功获取数据数组之后,用Application对象来缓存起来,从而减少对数据库的查询次数,一定程序程度上优化ASP的性能。转地址:

在asp.net中Response与Request对象是两个常用的对象,虽然他们长得有点像,但是作用却是截然不同,我们来看一下他们他们都有哪些不同。

一切尽在大叔的博客中:

<1>ASP.NET中的常用系统对象
  Page对象:指向页面自身的方式,作用域为页面执行期
  Request对象:读取客户端在Web请求期间发送的值
  Response对象:封装了页面执行期返回到HTTP客户端的输出
  Application对象 :作用于整个程序运行期的准柜台对象
  Session对象:会话期状态保持对象,用于跟踪单一用户的会话
  Cookie对象:客户端保持会话信息的一种方式
  Server对象:提供对服务器上方法和属性的访问

一、Response对象主要作用:像浏览器输出信息

<2>Page对象
  Page 是Page类对象,代表一个Web窗体,它充当页面,中包含的所有服务器
    控件的一个外围的命名容器
  它的类型为:System.Web.UI.Page 是一个不要声明就可以使用的内置对象

常见属性:

 常用属性:Title 获取或设置网页的标题
      IsPostBack  获取一个值,用于指示该页是否正为响应客户端回发而加载
        获知是否正被首次加载和访问
      IsValid    获取一个值,用于指示页面验证是否成功

WriteFile 将文件输出到客户端
  Write 将数据输出到客户端浏览器
  Redirect 将网页重新转到另一地址
  Flush 将缓冲区的数据输出到客户端浏览器
  End 停止并结束ASP网页的处理
  Close 关闭客户端的联机
  ClearHeaders 清除缓冲区中的页面标题
  Clear 清除缓冲区的数据
  BinaryWrite 将二进制字符或字符串输出到客户端浏览器
  AppendToLog 将自定义的数据加入到IIS日志文件中(Log File),以便追踪与分析记录。

<3>Response对象
    服务器对客户端响应信息的集合。主要用来输出信息到客户端
  类型是:System.Web.HttpResponse也是一个不要声明就可以使用的内置对象
    方法: Write()  直接在页面上输出内容
  Redirect()     重定向到另一个页面

举例:

<4>Request对象
  读取浏览器已经发送的内容,以使ASP.NET能够读取客户端在Web请求期发送
      的HTTP值
  类型是:System.Web.HttpRequest  也是不要声明就可以使用的内置对象
  QueryString["对象名"]   获取通过URL路径传来的数据
  Form        获取通过表单提交传输的数据
  ServerVariables属性  获取Web服务器变量的集合
  Params属性  以上3种传输的内容都可以使用该属性获取
<5>Server对象
  MapPath方法  获得文件的物理路径
  Execute方法和Transfer方法 执行另一个页面的脚本
  HtmlEncode方法HtmlDecode  将文本编码成可以再浏览器中正确浏览的格式
  UrlEncode 和 UrlDecode  URL编码和解码

1、write--将数据输出到客户端浏览器(显示在浏览器上)
Response.Write ("字符串/变量")

<6>页面跳转汇总
  一 超链接:  <a>标签 href
  二 服务器控件属性:   
    HyperLink  NavigateUrl
    Button    PostBackUrl
    LinkButton  PostBackUrl
    ImageButton   PostBackUrl
  三:浏览器重定向
    Response.Redirect()
      例子<1> 浏览器---请求----->a1.aspx
        <2>m1.aspx---通知转向--->浏览器
        <3>浏览器---重请求----m2.aspx
        
 服务器跳转:
    Server.TRanser()   

本文由澳门威尼斯人平台发布于计算机编程,转载请注明出处:asp中在JScript中使用RecordSet对象的GetRows

关键词: