注册 登录
编程论坛 ASP技术论坛

搜索 出错

zdloveday 发布于 2008-10-15 09:06, 897 次点击
<%
 IF Request.QueryString("lb")<>"" then (接收到他的类别)
   id=Request.QueryString("lb")                       
   IF  id =3 then     (当类别等以3时运行下面(也就是lb=3))
     IF  Request.QueryString("trainname")<>"" then  (接收到一个text文本框里的内容)
     trainname=Request.QueryString("trainname")
     Set Sql=ocoon.execute("select * from lbtrain  where lb='3' and trainname  like'"& % trainname % &"' or introduce like'"& % trainname % &"'  or address like'"& % trainname % &"'  order by id desc")
                            
      End if
    Else
                            
    IF id=1 then 当类别等于1时运行下面(也就是lb=1))
        IF  Request.QueryString("trainname")<>"" then
        trainname=Request.QueryString("trainname")
        Set Sql=ocoon.execute("select * from lbtrain  where lb='1' and trainname  like'"& % trainname % &"' or introduce like'"& % trainname % &"'  or address like'"& % trainname % &"'  order by id desc")
                            
        End if
    End  if
 End  if
End if                                
%>

这样写是不是  有问题了  经常提示我 Sql语句 出现问题 ,但是 我 保证 Sql语句在Sqlserver里 能正确查出

请大家 看一下  我能不能 这样写  我怀疑我 写的 代码了

[[it] 本帖最后由 zdloveday 于 2008-10-15 11:35 编辑 [/it]]
8 回复
#2
sunfishy2008-10-15 10:47
sql语句中注意一下like

%号应该包含在""中...

如:sql="select * from book where bookname like '%" &bookname& "%'"
#3
zdloveday2008-10-15 11:38
谢谢  就是 那的问题
可以 他现在  提示的是这里
<%            
 Do while Not Sql.Eof                        
 %>
缺少:''     这   是什么意思啊?
#4
sunfishy2008-10-15 11:49
这样看不出来的.

稍微多贴点出来看看..
#5
zdloveday2008-10-15 12:45
<%
IF Request.QueryString("lb")<>"" then  
                              id=Request.QueryString("lb")    
 IF  id = "3" then                                 IF  Request.QueryString("trainname")<>"" then
                                       trainname=Request.QueryString("trainname")                  Set Rs=ocoon.execute("select * from lbtrain  where   lb='3 ' and trainname like '%" & trainname & "%' or introduce like'%" &trainname& "%' or address like'%" &trainname& "%'  order by id desc")                  End if
   Else
    IF id=1 then                                    IF  Request.QueryString("trainname")<>"" then
                                       trainname=Request.QueryString("trainname")
                                      Set Rs=ocoon.execute("select * from lbtrain  where   lb='1' and trainname like '%" & trainname & "%' or introduce like'%" & trainname & "%' or address like'%" &trainname& "%'  order by id desc")                   End if
    End  if
End  if        
%>
<%
'set rs=server.CreateObject("adodb.recordset")
 Do while Not Rs.Eof                        
 %>
<TR>
   <TD align="left" valign="top"><%=Rs("trainname")%></TD>
   <td align="left" valign="top"><%=Rs("province")%></td>
   <td align="left" valign="top"><%=Rs("introduce")%></td>
   <td align="left" valign="top"><%=Rs("address")%> </td>                        
</TR>
<%
  Rs.MoveNext()
  Loop
  End if
%>

提示的错误 是  Do while Not Rs.Eof  当中的 Rs 指示不明  ,   所以才提示缺少对象
出现 这样的情况 怎么做了?
#6
zdloveday2008-10-15 12:48
上面的 就是  最 前面的 代码
#7
zdloveday2008-10-15 12:59
找到 错误 了

当他为空的时候  就抱错
#8
zdloveday2008-10-15 13:10
select * from lbtrain  where  trainname like '% 公司%'
匹配 符号 前 不可以 有空格  
害 我找了  好久的 错误
#9
sunfishy2008-10-15 21:20
呵呵.
1