51Testing软件测试论坛

标题: 不知道错在哪了?我是菜鸟,刚学这个得! [打印本页]

作者: 菠菜    时间: 2007-8-15 10:13
标题: 不知道错在哪了?我是菜鸟,刚学这个得!
<tr>
        <th colspan="11" align="left" valign="top" bgcolor="#F09400" scope="row"><span class="style16">
          <% dim va
         comprice=request("price")
                if comprice<>"" then   
                    elseif price="3000" then
                    va="3000元以下"
                 elseif  price="3000-4000" then
                          va="3000-4000元"
                         elseif  price="4000-5000" then
                                  va="4000-5000元"
                                 elseif price="5000-6000" then
                                         va="5000-6000元"
                                         elseif price="6000-7000" then
                                                 va="6000-7000元"
                                                elseif price="7000-8000" then
                                                   va="7000-8000元"
                                                                  elseif price="8000" then
                                                         va="8000元以上"
                                                else va="网友"
        end if %>
        <% response.write va %>电脑配置</th>
        </tr>
作者: 菠菜    时间: 2007-8-15 10:47
标题: 唉!
为什么米有人帮我!难道错了很离谱!
唉,不想活了。。。
作者: surlary    时间: 2007-8-15 10:52
ASP吗?
你的判断语句逻辑关系有问题,检查一下吧。
作者: 菠菜    时间: 2007-8-15 10:56
标题: 额!
我检查了半天,也米发现什么?我看这句话以经两天了。
以经彻底米有感觉了。。
作者: surlary    时间: 2007-8-15 11:04
而且你判断的变量名称也不统一,这可能是你所指的错误,试试这个逻辑吧:

  1. Dim va
  2. comprice=request("price")
  3. If comprice="3000" Then
  4.         va="3000元以下"
  5. ElseIf comprice="3000-4000" Then
  6.         va="3000-4000元"
  7. ElseIf comprice="4000-5000" Then
  8.         va="4000-5000元"
  9. ElseIf comprice="5000-6000" Then
  10.         va="5000-6000元"
  11. ElseIf comprice="6000-7000" Then
  12.         va="6000-7000元"
  13. ElseIf comprice="7000-8000" Then
  14.         va="7000-8000元"
  15. ElseIf comprice="8000" Then
  16.         va="8000元以上"
  17. Else
  18.         va="网友"
  19. End If
复制代码

作者: 菠菜    时间: 2007-8-15 11:11
标题: 额!
谢谢你,终于好了。嘿嘿。。。。O~YE~
作者: 菠菜    时间: 2007-8-15 11:13
标题: 嘿!
我好像还有一个问题,可8可以再问下你哈!sdlkfj5 sdlkfj5 sdlkfj5 sdlkfj5 sdlkfj5 sdlkfj2 sdlkfj3 sdlkfj3 sdlkfj5 sdlkfj5
作者: surlary    时间: 2007-8-15 11:23
请说吧,如果再这么磨蹭大家会怀疑你是在灌水而不是真想问问题了。
作者: 菠菜    时间: 2007-8-15 11:25
标题: 额!
<%
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
        %>
作者: 菠菜    时间: 2007-8-15 11:28
标题: `
缺少对象CONN,我数据库确定有连了。
作者: surlary    时间: 2007-8-15 11:31
你没有提供错误信息,所以我假设你的数据库操作不存在问题的话,你的代码片段少了一个End If在最后。
作者: 菠菜    时间: 2007-8-15 11:35
标题: 它的出错信息!
Microsoft VBBcript 运行时错误 ‘800a01a8’
缺少对象:‘CONN’
作者: surlary    时间: 2007-8-15 11:36
如果是说“缺少对象CONN”这种错误,那就要检查你的Conn了,Conn的Execute方法是在数据库执行某一SQL,而你提供的片段需要通过RecordSet读取数据,所以应该用RS.Open方法,你对比一下你参照找源码,看看问题所在。
作者: surlary    时间: 2007-8-15 11:41
首先看看你当前页面有没有Set conn=Server.CreateObject("ADODB.Connection")这样的语句,如果没有,从数据库操作开始就不对。
作者: 菠菜    时间: 2007-8-15 11:44
标题: 这个有哒!
<!--include file="conn.asp"-->
作者: 菠菜    时间: 2007-8-15 11:58
标题: 唉!
找8出来!
作者: bobile    时间: 2007-8-15 12:41
呵呵.逻辑有问题,哪个什么不等于空应该放到IF的外面来判断,
作者: bobile    时间: 2007-8-15 12:41
好好想想了
作者: 菠菜    时间: 2007-8-15 13:26
标题: 额!我想了这个以经两天了!!
实在是想不通啊,大哥
作者: surlary    时间: 2007-8-15 13:28
把数据库操作的相关代码整体贴出来看看。
作者: 菠菜    时间: 2007-8-15 13:34
标题:
<%
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("data/diy2.mdb")
set conn= Server.CreateObject("ADODB.Connection")
conn.Open connstr%>
作者: 菠菜    时间: 2007-8-15 13:46
<!--include file="conn.asp"-->
然后用这个直接就连上去了.后面就是上面那个了....
作者: surlary    时间: 2007-8-15 13:46
我用你的方法试过了,没有问题,可以得到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
复制代码

作者: surlary    时间: 2007-8-15 13:47
有可能你的Conn.asp路径不对,看看是不是和页面在同一路径,不清楚的话干脆把include的内容复制到页面里来。
作者: 菠菜    时间: 2007-8-15 13:52
<%
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
%>
作者: 菠菜    时间: 2007-8-15 13:53
标题: 是不是太冗长了!
有些该去的,还是应该去点掉!!
作者: 菠菜    时间: 2007-8-15 14:03
标题: 严重
我用上面那个运行了一下,出错信息又变成:
类型不匹配:'RS'
作者: surlary    时间: 2007-8-15 14:08
把这段代码贴到一个新文件里浏览一下看看出什么错误。

  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 编辑 ]
作者: 菠菜    时间: 2007-8-15 14:12
<%else
   set rs=conn.execute("select * from User_Scheme order by date")
    end if  
%>


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


针对上面那句话,提示下面这句话
作者: 菠菜    时间: 2007-8-15 14:14
标题: 这个
Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

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

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

缺少对象: 'rs'

/123.asp,行28
作者: surlary    时间: 2007-8-15 14:18
那个代码我编辑过了,你重新复制一下,然后在传递参数的时候这样,加一个变量比如123.asp?price=3000。
作者: 菠菜    时间: 2007-8-15 14:27
如果我用的是多重循环得,是不是在每个循环上都得再加上
    rs.movenext
             loop
      end if
             rs.close
             set rs=nothing
      end If
这段代码
作者: 菠菜    时间: 2007-8-15 14:28
标题: ?
我用了六条循环,只加了一段
<%          rs.close
                         set rs=nothing
                         conn.close
                        set conn=nothing
%>
这样可行`BO`
作者: surlary    时间: 2007-8-15 14:42
在获得RS以后,进行各行各字段的数据读取,也就是你的Do While循环,数据读取结束后执行RS.Close,当页面本次执行周期不再需要RS和Conn的时候Set 他们为 Nothing。
作者: 菠菜    时间: 2007-8-15 15:17
标题: 额!郁闷了,终于发现了这个问题的答案!
原来下面的都米有错,
连接数据库的时候
作者: 菠菜    时间: 2007-8-15 15:18
标题: 唉~
<!--include file="conn.asp"-->
这个东西竟然少写了一个#
<!--#include file="conn.asp"-->
郁闷呖!
作者: wtucel    时间: 2007-8-15 15:23
我晕,在这里讨论ASP,搞错没,这个是QTP专区......
作者: haiqin    时间: 2007-8-17 11:28
问一下,你这些代码写哪儿的,是在qtp中吗,是脚本吗
作者: vincenthan    时间: 2007-8-17 12:08
讨论ASP,的确有点牵强sdlkfj5
作者: 菠菜    时间: 2007-8-17 19:00
标题: 嘿嘿!
我不知道,真是不好意思,下次一定注意..一定注意...
作者: lyscu    时间: 2007-8-24 12:44
我没有看出来。sdlkfj7
作者: prcsc    时间: 2007-8-26 08:20
ddd




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2