51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

楼主: 菠菜
打印 上一主题 下一主题

[原创] 不知道错在哪了?我是菜鸟,刚学这个得!

[复制链接]

该用户从未签到

21#
 楼主| 发表于 2007-8-15 13:34:41 | 只看该作者

<%
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("data/diy2.mdb")
set conn= Server.CreateObject("ADODB.Connection")
conn.Open connstr%>
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2007-8-15 13:46:26 | 只看该作者
<!--include file="conn.asp"-->
然后用这个直接就连上去了.后面就是上面那个了....
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2007-8-15 13:46:43 | 只看该作者
我用你的方法试过了,没有问题,可以得到RS。

  1. Set Conn = CreateObject("ADODB.Connection")
  2. Set RS = CreateObject("ADODB.RecordSet")
  3. Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db1.mdb"
  4. Conn.Open
  5. Set RS = Conn.Execute("select * from test", 5)
  6. While Not RS.EOF
  7.         '这里对RS取值
  8.         rs.MoveNext
  9. Wend
  10. RS.Close
  11. Conn.Close
  12. Set RS = Nothing
  13. Set Conn = Nothing
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2007-8-15 13:47:52 | 只看该作者
有可能你的Conn.asp路径不对,看看是不是和页面在同一路径,不清楚的话干脆把include的内容复制到页面里来。
回复 支持 反对

使用道具 举报

该用户从未签到

25#
 楼主| 发表于 2007-8-15 13:52:10 | 只看该作者
<%
comprice=request("price")
if comprice<>"" then   
   if price="3000"   then
      set rs=conn.execute("select * from User_Scheme where totalprice<=3000")
      if rs.eof then
            response.Write("该价位没有配置单,请选择其他价位!")
        else
            do while not rs.eof
%>

<tr>
              <td><%=rs("typename")%></td>
        <td ><%=rs("totalprice")%></td>
        <td ><%=rs("usename")%></td>
              <td ><%=rs("usename")%></td>
              <td >(<%=rs("date")%>)</td>
        <td ><%=rs("score")%></td></tr>               
<%
             rs.movenext
             loop
      end if
      end if
        %>
                  
<%else
   set rs=conn.execute("select * from User_Scheme order by date")
    end if  
%>
    <tr>
                       <td><%=rs("typename")%></td>
                <td><%=rs("totalprice")%></td>
                <td ><%=rs("usename")%></td>
                <td ><%=rs("usename")%></td>
                                 < td >(<%=rs("date")%>)</td>
                <td ><%=rs("score")%></td></tr>       
<%          rs.close
                         set rs=nothing
                         conn.close
                        set conn=nothing
%>
回复 支持 反对

使用道具 举报

该用户从未签到

26#
 楼主| 发表于 2007-8-15 13:53:15 | 只看该作者

是不是太冗长了!

有些该去的,还是应该去点掉!!
回复 支持 反对

使用道具 举报

该用户从未签到

27#
 楼主| 发表于 2007-8-15 14:03:10 | 只看该作者

严重

我用上面那个运行了一下,出错信息又变成:
类型不匹配:'RS'
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2007-8-15 14:08:25 | 只看该作者
把这段代码贴到一个新文件里浏览一下看看出什么错误。

  1. <%
  2. connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("data/diy2.mdb")
  3. set conn= Server.CreateObject("ADODB.Connection")
  4. conn.Open connstr
  5. comprice=request("price")
  6. if comprice<>"" then   
  7.    if comprice="3000"   then
  8.       set rs=conn.execute("select * from User_Scheme where totalprice<=3000")
  9.       if rs.eof then
  10.             response.Write("该价位没有配置单,请选择其他价位!")
  11.         else
  12.             do while not rs.eof
  13. %>

  14. <tr>
  15.               <td><%=rs("typename")%></td>
  16.         <td ><%=rs("totalprice")%></td>
  17.         <td ><%=rs("usename")%></td>
  18.               <td ><%=rs("usename")%></td>
  19.               <td >(<%=rs("date")%>)</td>
  20.         <td ><%=rs("score")%></td></tr>               
  21. <%
  22.              rs.movenext
  23.              loop
  24.       end if
  25.              rs.close
  26.              set rs=nothing
  27.       end If

  28. End If

  29.                          conn.close
  30.                         set conn=nothing
  31. %>
复制代码

[ 本帖最后由 surlary 于 2007-8-15 14:19 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

29#
 楼主| 发表于 2007-8-15 14:12:06 | 只看该作者
<%else
   set rs=conn.execute("select * from User_Scheme order by date")
    end if  
%>


Microsoft VBBcript 运行时错误 ‘800a01a8’
缺少对象:‘CONN’


针对上面那句话,提示下面这句话
回复 支持 反对

使用道具 举报

该用户从未签到

30#
 楼主| 发表于 2007-8-15 14:14:17 | 只看该作者

这个

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft VBScript 运行时错误 错误 '800a01a8'

缺少对象: 'rs'

/123.asp,行28
回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2007-8-15 14:18:45 | 只看该作者
那个代码我编辑过了,你重新复制一下,然后在传递参数的时候这样,加一个变量比如123.asp?price=3000。
回复 支持 反对

使用道具 举报

该用户从未签到

32#
 楼主| 发表于 2007-8-15 14:27:01 | 只看该作者
如果我用的是多重循环得,是不是在每个循环上都得再加上
    rs.movenext
             loop
      end if
             rs.close
             set rs=nothing
      end If
这段代码
回复 支持 反对

使用道具 举报

该用户从未签到

33#
 楼主| 发表于 2007-8-15 14:28:54 | 只看该作者

?

我用了六条循环,只加了一段
<%          rs.close
                         set rs=nothing
                         conn.close
                        set conn=nothing
%>
这样可行`BO`
回复 支持 反对

使用道具 举报

该用户从未签到

34#
发表于 2007-8-15 14:42:23 | 只看该作者
在获得RS以后,进行各行各字段的数据读取,也就是你的Do While循环,数据读取结束后执行RS.Close,当页面本次执行周期不再需要RS和Conn的时候Set 他们为 Nothing。
回复 支持 反对

使用道具 举报

该用户从未签到

35#
 楼主| 发表于 2007-8-15 15:17:20 | 只看该作者

额!郁闷了,终于发现了这个问题的答案!

原来下面的都米有错,
连接数据库的时候
回复 支持 反对

使用道具 举报

该用户从未签到

36#
 楼主| 发表于 2007-8-15 15:18:13 | 只看该作者

唉~

<!--include file="conn.asp"-->
这个东西竟然少写了一个#
<!--#include file="conn.asp"-->
郁闷呖!
回复 支持 反对

使用道具 举报

该用户从未签到

37#
发表于 2007-8-15 15:23:53 | 只看该作者
我晕,在这里讨论ASP,搞错没,这个是QTP专区......
回复 支持 反对

使用道具 举报

该用户从未签到

38#
发表于 2007-8-17 11:28:38 | 只看该作者
问一下,你这些代码写哪儿的,是在qtp中吗,是脚本吗
回复 支持 反对

使用道具 举报

该用户从未签到

39#
发表于 2007-8-17 12:08:41 | 只看该作者
讨论ASP,的确有点牵强sdlkfj5
回复 支持 反对

使用道具 举报

该用户从未签到

40#
 楼主| 发表于 2007-8-17 19:00:20 | 只看该作者

嘿嘿!

我不知道,真是不好意思,下次一定注意..一定注意...
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 15:45 , Processed in 0.076043 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表