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

帮我看看那里错了,为什么查询不到内容

lili0610 发布于 2008-08-25 17:35, 1374 次点击
<!--#include file="conn.asp"-->
<%
content=request.Form("content")
class1=request.Form("class1")
sql="Select * from BellData where"
If classl="歌曲名称" Then
sql=sql&" SongName like '%"&content&"%'"
End If
If class1="歌手" Then
sql=sql&" SingerName like '%"&content&"%'"
End If
If class1="提供商" Then
sql=sql&" SpName like '%"&content&"%'"
End If
If class1="日期" Then
sql=sql&" AvailabilityDate like '%"&content&"%'"
End If
sql=sql&" order by DownloadsNumber asc"
response.Write sql
response.End()
set rs=Server.CreateObject("Adodb.Recordset")
rs.open sql,Conn,1,1
If rs.bof Or rs.eof Then
response.Write"没有查询的内容!"
else
counts=20
rs.pagesize=counts'每页显示的行数
allpage=rs.pagecount'总页数
page=request("page")'从url获取当前页 本句未修改前是page=request.querystring("page")
If not IsNumeric(page) Then
   page=1
End if
if IsEmpty(page)Or CInt(page)<1 Then
   page=1
elseif CInt(page)>=allpage Then
   page=allpage
End If
rs.absolutepage=page
%>
<table width="900" border="1">
  <tr>
    <td><div align="center">铃声编号</div></td>
    <td><div align="center">铃声名称</div></td>
    <td><div align="center">歌手姓名</div></td>
    <td><div align="center">¥价格</div></td>
    <td><div align="center">有效期</div></td>
    <td><div align="center">铃音提供商(sp)</div></td>
    <td><div align="center">唱片公司</div></td>
    <td><div align="center">铃音类型</div></td>
    <td><div align="center">接入地区</div></td>
    <td><div align="center">定购次数</div></td>
  </tr>
  <%
  do while not rs.eof and counts>0
  %>
  <tr>
    <td><div align="center"><%=rs("BellID")%></div></td>
    <td><div align="center"><%=rs("SongName")%></div></td>
    <td><div align="center"><%=rs("SingerName")%></div></td>
    <td><div align="center">¥:<%=rs("Price")%></div></td>
    <td><div align="center"><%=rs("AvailabilityDate")%></div></td>
    <td><div align="center"><%=rs("SpName")%></div></td>
    <td><div align="center"><%=rs("DiscCompany")%></div></td>
    <td><div align="center"><%=rs("SingType")%></div></td>
    <td><div align="center"><%=rs("Region")%></div></td>
    <td><div align="center"><%=rs("DownloadsNumber")%></div></td>
  </tr>
  <%
  counts=counts-1
  rs.movenext
  loop
  end if
  %>
</table>
<%
If page=1 Then
response.write("<a href=dema_content.asp>首页</a>")
Else
response.write("<a href=dema_content.asp?page=1>首页</a><a href=dema_content.asp?page="&page-1&">上一页</a>")
End If
response.write("第"&page&"页")
If page=allpage Then
response.write("<a href =dema_content.asp>尾页</a>")
Else
response.write("<a href=dema_content.asp?page="&page+1&">下一页</a><a href=dema_content.asp?page="&allpage&">尾页</a>")
End if
%>
22 回复
#2
yms1232008-08-25 19:54
SQL语句楼主输出有错误吗?
#3
J_j2008-08-25 21:52
以前我也遇到过这样的问题~~表面看上去都没有错~~~~!~但是就是查不到东西~~页面白白的什么也没有,后来我一句句的检查,发现用request接收数据是收不到数据导致查询失败~~你也可以试试~~把content,class1输出检查一下。
#4
hmhz2008-08-26 10:22
function chaxun(str1,str2)
Select Case str1
Case "歌曲名称" chaxun="SongName like '%"&str2&"%'"
Case "歌手" chaxun="SingerName like '%"&str2&"%'"
Case "提供商" chaxun="SpName like '%"&str2&"%'"
Case "日期" chaxun="AvailabilityDate like '%"&str2&"%'"
End Select
end function

set rs=Server.CreateObject("Adodb.Recordset")
rs.open "Select * from BellData where "&chaxun(classl,content)&" order by DownloadsNumber asc",Conn,1,1

[[it] 本帖最后由 hmhz 于 2008-8-26 10:33 编辑 [/it]]
#5
lili06102008-08-26 10:57
我试试哈,谢谢大家了
#6
w4219475452008-08-26 11:03
研究一下.
#7
lili06102008-08-26 11:06
<!--#include file="conn.asp"-->
<%
content=request.Form("content")
class1=request.Form("class1")
function chaxun(str1,str2)
Select Case str1
Case "歌曲名称" chaxun="SongName like '%"&str2&"%'"
Case "歌手" chaxun="SingerName like '%"&str2&"%'"
Case "提供商" chaxun="SpName like '%"&str2&"%'"
Case "日期" chaxun="AvailabilityDate like '%"&str2&"%'"
End Select
end function

set rs=Server.CreateObject("Adodb.Recordset")
rs.open "Select * from BellData where "&chaxun(classl,content)&" order by DownloadsNumber desc",Conn,1,1

if rs.Eof and rs.Bof then
    Response.Write"没有相关记录"
else

counts=20
rs.pagesize=counts'每页显示的行数
allpage=rs.pagecount'总页数
page=request("page")'从url获取当前页 本句未修改前是page=request.querystring("page")
If not IsNumeric(page) Then
   page=1
End if
if IsEmpty(page)Or CInt(page)<1 Then
   page=1
elseif CInt(page)>=allpage Then
   page=allpage
End If
rs.absolutepage=page
%>
<table width="900" border="1">
  <tr>
    <td><div align="center">铃声编号</div></td>
    <td><div align="center">铃声名称</div></td>
    <td><div align="center">歌手姓名</div></td>
    <td><div align="center">¥价格</div></td>
    <td><div align="center">有效期</div></td>
    <td><div align="center">铃音提供商(sp)</div></td>
    <td><div align="center">唱片公司</div></td>
    <td><div align="center">铃音类型</div></td>
    <td><div align="center">接入地区</div></td>
    <td><div align="center">定购次数</div></td>
  </tr>
  <%
  do while not rs.eof and counts>0 %>
  <tr>
    <td><div align="center"><%=rs("BellID")%></div></td>
    <td><div align="center"><%=rs("SongName")%></div></td>
    <td><div align="center"><%=rs("SingerName")%></div></td>
    <td><div align="center">¥:<%=rs("Price")%></div></td>
    <td><div align="center"><%=rs("AvailabilityDate")%></div></td>
    <td><div align="center"><%=rs("SpName")%></div></td>
    <td><div align="center"><%=rs("DiscCompany")%></div></td>
    <td><div align="center"><%=rs("SingType")%></div></td>
    <td><div align="center"><%=rs("Region")%></div></td>
    <td><div align="center"><%=rs("DownloadsNumber")%></div></td>
  </tr>
  <%
   counts=counts-1
  rs.movenext
  loop
  end if
  %>
</table>
<%
If page=1 Then
response.write("<a href=admin_manage.asp>首页</a>")
Else
response.write("<a href=admin_manage.asp?page=1>首页</a><a href=admin_manage.asp?page="&page-1&">上一页</a>")
End If
response.write("第"&page&"页")
If page=allpage Then
response.write("<a href =admin_manage.asp>尾页</a>")
Else
response.write("<a href=admin_manage.asp?page="&page+1&">下一页</a><a href=admin_manage.asp?page="&allpage&">尾页</a>")
End if
%>


还是,查询不到内容.
if rs.Eof and rs.Bof then
    Response.Write"没有相关记录"
else
这是判断应该没有错吧
#8
lili06102008-08-26 11:12
<!--#include file="conn.asp"-->
<%
content=request.Form("content")
class1=request.Form("class1")
sql="Select BellID,SongName,SingerName,Price,AvailabilityDate,SpName,DiscCompany,SingType,Region,DownloadsNumber from BellData where"
If classl="歌曲名称" Then
sql=sql&" SongName like '%"&content&"%'"
End If
If class1="歌手" Then
sql=sql&" SingerName like '%"&content&"%'"
End If
If class1="提供商" Then
sql=sql&" SpName like '%"&content&"%'"
End If
If class1="日期" Then
sql=sql&" AvailabilityDate like '%"&content&"%'"
End If
sql=sql&" order by DownloadsNumber DESC"
response.Write sql
response.End()
set rs=Server.CreateObject("Adodb.Recordset")
rs.Open sql,Conn,1,1
if rs.Eof and rs.Bof then
    Response.Write"没有相关记录"
else
counts=20
rs.pagesize=counts'每页显示的行数
allpage=rs.pagecount'总页数
page=request("page")'从url获取当前页 本句未修改前是page=request.querystring("page")
If not IsNumeric(page) Then
   page=1
End if
if IsEmpty(page)Or CInt(page)<1 Then
   page=1
elseif CInt(page)>=allpage Then
   page=allpage
End If
rs.absolutepage=page
%>
<table width="900" border="1">
  <tr>
    <td><div align="center">铃声编号</div></td>
    <td><div align="center">铃声名称</div></td>
    <td><div align="center">歌手姓名</div></td>
    <td><div align="center">¥价格</div></td>
    <td><div align="center">有效期</div></td>
    <td><div align="center">铃音提供商(sp)</div></td>
    <td><div align="center">唱片公司</div></td>
    <td><div align="center">铃音类型</div></td>
    <td><div align="center">接入地区</div></td>
    <td><div align="center">定购次数</div></td>
  </tr>
  <%
  do while not rs.eof and counts>0 %>
  <tr>
    <td><div align="center"><%=rs("BellID")%></div></td>
    <td><div align="center"><%=rs("SongName")%></div></td>
    <td><div align="center"><%=rs("SingerName")%></div></td>
    <td><div align="center">¥:<%=rs("Price")%></div></td>
    <td><div align="center"><%=rs("AvailabilityDate")%></div></td>
    <td><div align="center"><%=rs("SpName")%></div></td>
    <td><div align="center"><%=rs("DiscCompany")%></div></td>
    <td><div align="center"><%=rs("SingType")%></div></td>
    <td><div align="center"><%=rs("Region")%></div></td>
    <td><div align="center"><%=rs("DownloadsNumber")%></div></td>
  </tr>
  <%
   counts=counts-1
  rs.movenext
  loop
  end if
  %>
</table>
<%
If page=1 Then
response.write("<a href=admin_manage.asp>首页</a>")
Else
response.write("<a href=admin_manage.asp?page=1>首页</a><a href=admin_manage.asp?page="&page-1&">上一页</a>")
End If
response.write("第"&page&"页")
If page=allpage Then
response.write("<a href =admin_manage.asp>尾页</a>")
Else
response.write("<a href=admin_manage.asp?page="&page+1&">下一页</a><a href=admin_manage.asp?page="&allpage&">尾页</a>")
End if
%>


我这样也没有错,但是执行到
if rs.Eof and rs.Bof then
    Response.Write"没有相关记录"
else
这的时候,总是输出没有相关记录.
SQL语句放到MSSQL里也可以执行
查询想要的记录,但是,总是不显示所查询的内容,到底是怎么了,我快疯了
#9
hmhz2008-08-26 11:25
response.Write content
response.Write classl
response.end

看看值传过来了没有
#10
lili06102008-08-26 11:32
什么都得过来了.到
if rs.Eof and rs.Bof then
    Response.Write"没有相关记录"
else
他不知道为什么,不管查到还是没有查到,都会输出Response.Write"没有相关记录"
我用RESPONSE.END在这里输出过,就是到这里,不再向下执行
我的IF判断错了吗?????????
#11
lili06102008-08-26 11:35
Select BellID,SongName,SingerName,Price,AvailabilityDate,SpName,DiscCompany,SingType,Region,DownloadsNumber from BellData where SingerName like '%孙楠%' order by DownloadsNumber DESC
这是查询语句,没有错的,我在MSSQL里也用这句查询过,内容都能查询到,为什么总是查询不到记录呢?
#12
lili06102008-08-26 11:42
<!--#include file="conn.asp"-->
<%
content=request.Form("content")
class1=request.Form("class1")
sql="Select BellID,SongName,SingerName,Price,AvailabilityDate,SpName,DiscCompany,SingType,Region,DownloadsNumber from BellData where"
If classl="歌曲名称" Then
sql=sql&" SongName like '%"&content&"%'"
End If
If class1="歌手" Then
sql=sql&" SingerName like '%"&content&"%'"
End If
If class1="提供商" Then
sql=sql&" SpName like '%"&content&"%'"
End If
If class1="日期" Then
sql=sql&" AvailabilityDate like '%"&content&"%'"
End If
sql=sql&" order by DownloadsNumber DESC"
'response.Write sql
'response.End()
set rs=Server.CreateObject("Adodb.Recordset")
rs.Open sql,Conn,1,1
if rs.Eof and rs.Bof Then
    Response.Write"没有相关记录"
Else
response.End()
counts=20
rs.pagesize=counts
allpage=rs.pagecount
page=request("page")
If not IsNumeric(page) Then
   page=1
End if
if IsEmpty(page)Or CInt(page)<1 Then
   page=1
elseif CInt(page)>=allpage Then
   page=allpage
End If
rs.absolutepage=page
%>
<table width="900" border="1">
  <tr>
    <td><div align="center">铃声编号</div></td>
    <td><div align="center">铃声名称</div></td>
    <td><div align="center">歌手姓名</div></td>
    <td><div align="center">¥价格</div></td>
    <td><div align="center">有效期</div></td>
    <td><div align="center">铃音提供商(sp)</div></td>
    <td><div align="center">唱片公司</div></td>
    <td><div align="center">铃音类型</div></td>
    <td><div align="center">接入地区</div></td>
    <td><div align="center">定购次数</div></td>
  </tr>
  <%
  do while not rs.eof and counts>0 %>
  <tr>
    <td><div align="center"><%=rs("BellID")%></div></td>
    <td><div align="center"><%=rs("SongName")%></div></td>
    <td><div align="center"><%=rs("SingerName")%></div></td>
    <td><div align="center">¥:<%=rs("Price")%></div></td>
    <td><div align="center"><%=rs("AvailabilityDate")%></div></td>
    <td><div align="center"><%=rs("SpName")%></div></td>
    <td><div align="center"><%=rs("DiscCompany")%></div></td>
    <td><div align="center"><%=rs("SingType")%></div></td>
    <td><div align="center"><%=rs("Region")%></div></td>
    <td><div align="center"><%=rs("DownloadsNumber")%></div></td>
  </tr>
  <%
  counts=counts-1
  rs.movenext
  loop
  end if
  %>
</table>
<%
If page=1 Then
response.write("<a href=admin_manage.asp>首页</a>")
Else
response.write("<a href=admin_manage.asp?page=1>首页</a><a href=admin_manage.asp?page="&page-1&">上一页</a>")
End If
response.write("第"&page&"页")
If page=allpage Then
response.write("<a href =admin_manage.asp>尾页</a>")
Else
response.write("<a href=admin_manage.asp?page="&page+1&">下一页</a><a href=admin_manage.asp?page="&allpage&">尾页</a>")
End if
%>

前面的错误已经找到了?现在错误到这里了.
  <%
  do while not rs.eof and counts>0 %>
什么也不显示了,只是白白一片
#13
hmhz2008-08-26 12:51
程序代码:
<!--#include file="conn.asp"-->
<%
content=request("content")
class1=request("class1")

Select Case class1
Case "歌曲名称" chaxun="SongName like '%"&content&"%'"
Case "歌手" chaxun="SingerName like '%"&content&"%'"
Case "提供商" chaxun="SpName like '%"&content&"%'"
Case "日期" chaxun="AvailabilityDate like '%"&content&"%'"
End Select

set rs=Server.CreateObject("Adodb.Recordset")
rs.open "Select * from BellData where "&chaxun&" order by DownloadsNumber asc",Conn,1,1
if rs.eof and rs.bof then
Response.Write"没有相关记录"
else
page=request.querystring("page")
if page="" then page=1 end if
pages = 20
rs.pagesize = pages
maxpagecount=rs.pagecount
rs.absolutepage = page
    i=0
pagestart=page-9
pageend=page+9
if pagestart<1 then pagestart=1 end if
if pageend>maxpagecount then
pageend=maxpagecount
end if
rcount=rs.RecordCount
%>
<table width="900" border="1">
  <tr align="center">
    <td>铃声编号</td>
    <td>铃声名称</td>
    <td>歌手姓名</td>
    <td>¥价格</td>
    <td>有效期</td>
    <td>铃音提供商(sp)</td>
    <td>唱片公司</td>
    <td>铃音类型</td>
    <td>接入地区</td>
    <td>定购次数</td>
  </tr>
<%do while not rs.eof and i<rs.pagesize%>
  <tr align="center">
    <td><%=rs("BellID")%></td>
    <td><%=rs("SongName")%></td>
    <td><%=rs("SingerName")%></td>
    <td>¥:<%=rs("Price")%></td>
    <td><%=rs("AvailabilityDate")%></td>
    <td><%=rs("SpName")%></td>
    <td><%=rs("DiscCompany")%></td>
    <td><%=rs("SingType")%></td>
    <td><%=rs("Region")%></td>
    <td><%=rs("DownloadsNumber")%></td>
  </tr>
<%
  rs.movenext
  i=i+1
  loop
%>
<tr>
<td colspan="10">
<a href="?page=1&class1=<%=class1%>&content=<%=content%>" style="font-family:Webdings;">7</a>
<%
for n=pagestart to pageend
if n=int(page) then
Response.write " <font color=""red""><b>"&n&"</b></font> "
else
Response.write " <a href=""?page="&n&"&class1="&class1&"&content="&content&""">"&n&"</a> "
end if
next
%>
<a href="?page=<%=maxpagecount%>&class1=<%=class1%>&content=<%=content%>" style="font-family:Webdings;">8</a> 共<font color="red"><%=maxpagecount%></font>页 每页<font color="red"><%=pages%></font>条 共<font color="red"><%=rcount%></font>条
</td>
</tr>
</table>
<%
  end if
  rs.close
  set rs=nothing
%>


[[it] 本帖最后由 hmhz 于 2008-8-27 12:42 编辑 [/it]]
#14
lili06102008-08-26 13:18
回复 13# hmhz 的帖子
你的想法是不错,我也这么做过,但你的SQL得到的值不对
Select * from BellData where order by DownloadsNumber asc
查询成这样了,所以执行的时候会出错的
我的那个,应该是在WHILE里出错了
我以前也是用WHILE.不知道这次为什么就错了.你帮我看看
你这种方法,不知道为什么
条件"&chaxun(classl,content)&"
总是得不到
#15
hmhz2008-08-26 13:32
我知道原因了,你上面class1=request.Form("class1")

class1后面的是数字1
而你下面的判断 If classl="歌曲名称" Then 中的classl后面不是数字1,而是字母l

所以你只要把
"&chaxun(classl,content)&"
改成
"&chaxun(class1,content)&"

[[it] 本帖最后由 hmhz 于 2008-8-26 13:34 编辑 [/it]]
#16
lili06102008-08-26 13:45
应该可以,我给你给我的代码一整理,放到我用IF判断里,就可以了,就是分页不可以,我看看吧!
#17
hmhz2008-08-26 13:51
分页需要传查询参数的,而你的查询参数是通过 request.Form 传来的,所以分页上无法在地址栏传参数
你把
content=request.Form("content")
class1=request.Form("class1")
改成
content=request("content")
class1=request("class1")
这样 get 和 post 方式都能传送数据过来
我再把上面的分页加个传送查询参数上去,你分页就可以点了
#18
lili06102008-08-26 14:01
谢谢了
我知道了
我在这个论坛好长时间,怎么变成了,只发10帖的新人了
#19
lili06102008-08-26 14:21
好像不可以吧?分页还是没有改出来,好像不可以,可能是我没有看出来,再看看吧
不管怎么说,谢谢你了

[[it] 本帖最后由 lili0610 于 2008-8-26 14:25 编辑 [/it]]
#20
J_j2008-08-26 20:27
个人觉得sql语句出了问题。。。。。检查下
rs.open "Select * from BellData where "&chaxun(classl,content)&" order by DownloadsNumber asc",Conn,1,1
#21
lili06102008-08-27 09:48
这里没有错,只是分页错了?
#22
hmhz2008-08-27 12:43
13楼的代码我已经改过了,你复制过去运行看看
#23
lili06102008-08-27 13:25
已经好了,谢谢你了
1