+ -
当前位置:首页 → 问答吧 → asp+access中可以用这样的句式吗?这段代码 错在哪里?

asp+access中可以用这样的句式吗?这段代码 错在哪里?

时间:2010-08-28

来源:互联网

这是前台部分
复制内容到剪贴板
代码:
<table width="100%" border="0" cellpadding="0" cellspacing="0" >
        <tr >
          <form name="searchinfo" method="get" action="list.asp">
            <td height="30">用户搜索:
              <input name="searchkey" type="text" class=smallInput id="Searchkey" size="18" maxlength="50">
               <select   name=nSearch>
               <option   value=2> 检索全部
               <option   value=1> 检索已交费
               <option   value=0> 检索未交费
               </select>
              <input name="Query" type="submit" id="Query" value="搜 索">
              (输入姓名或手机号码或QQ号码中可能包含的关键字)</td>
          </form>
        </tr>
      </table>
这是后台部分
复制内容到剪贴板
代码:
set rs=server.createobject("adodb.recordset")
dim searchkey
searchkey=Trim(request("searchkey"))
if searchkey<>"" then
sql="select * from [puser] where  y_UserName like '%" & searchkey & "%' or y_UserMobile like '%" & searchkey & "%' or y_UserQQ like '%" & searchkey & "%'order by y_RegTime desc"
else
select   case   nSearch
case   2
sql="select * from [puser] order by y_RegTime desc"
case   1
sql="select * from [puser] where  y_PayTime <> "" order by y_RegTime desc"
case   0
sql="select * from [puser] where  y_PayTime = ""order by y_RegTime desc"
end  select
end if
rs.open sql,conn,1,1
……
中间用了

if ……
  else
     selcet case
      ……
     end selcet
end if

嵌套


想要实现的功能是:
第一种情况:根据用户名或者手机号码或者QQ号搜查所有的用户
第二种情况:检索出所有已付费的用户,即y_PayTime <> ""
第三种情况:检索出所有未付费的用户

但现在 的问题是没法执行?是哪里出了问题
这种情况有什么好的解决方案吗?SQL语句怎么构建,要求在一个页面文件内实现~



不胜感激!!

作者: zpfree   发布时间: 2010-08-28

试下,未作测试
复制内容到剪贴板
代码:
set rs=server.createobject("adodb.recordset")
dim searchkey, sWhere
searchkey=Trim(request("searchkey"))
If searchkey<>"" Then
    sWhere = "(y_UserName like '%" & searchkey & "%' or y_UserMobile like '%" & searchkey & "%' or y_UserQQ like '%" & searchkey & "%') And "
Else
    sWhere = ""
End If
If nSearch=1 Then
    sWhere = sWhere & "y_PayTime<>''"
ElseIf nSearch=0 Then
    sWhere = sWhere & "y_PayTime=''"
Else
    If searchkey<>"" Then sWhere = Left(sWhere, Len(sWhere)-4)
End If
If sWhere<>"" Then sWhere = " Where " & sWhere
sql="select * from [puser]" & sWhere & " order by y_RegTime desc"
rs.open sql,conn,1,1

作者: SenFe   发布时间: 2010-08-28

谢谢 盛飞~~,
你的代码我加一句
set rs=server.createobject("adodb.recordset")
dim searchkey, sWhere
searchkey=Trim(request("searchkey"))
nSearch=request("nSearch")
倒是能执行了~~
但现在只能检索出来全部和已付费的,不能检索出来未交费的

还有,现在页面打开时不显示列表信息,需要“搜索”按钮才可以~~
我想要的效果是:
打开页面时默认显示的全部信息,
如果检索的话,设定好条件,按下“搜索”按钮后显示的是想要的列表

作者: zpfree   发布时间: 2010-08-29

汗,以为你只是问那个SQL语句的问题,所以我贴的代码重点在于生成那个SQL语句,其它的又是另外的问题了,至于其它表单提交呀,获取表单的值呀,都是小问题,自己解决吧

作者: SenFe   发布时间: 2010-08-29

不是表单提交的问题,还是检索的问题~·而且检索出来的结果不能翻页··
If nSearch=1 Then
    sWhere = sWhere & "y_PayTime<>''"
ElseIf nSearch=0 Then
    sWhere = sWhere & "y_PayTime=''"
Else
    If searchkey<>"" Then sWhere = Left(sWhere, Len(sWhere)-4)
End If
If sWhere<>"" Then sWhere = " Where " & sWhere


你这一段把我给绕晕了~~



我把整个页面的代码都贴出来吧
复制内容到剪贴板
代码:
<!--#include file="conn.asp"-->
<!--#include file="heck.asp"-->
<%
If Request("del") = "del" Then
Set rs = Conn.Execute("Delete * From [puser] Where y_id ="&Request("id"))
Response.Write "<script>alert('操作成功');this.location.href='list.asp';</SCRIPT>"
rs.close
End if
%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<LINK href="css.css" type=text/css rel=stylesheet />
</head>
<body>
<script type="text/JavaScript">
function deluser()
{
   if(confirm("确定删除?"))
     return true;
   else
     return false;    
}
</script>
<table width="100%" border="0" cellpadding="0" cellspacing="0" >
        <tr >
          <form name="searchinfo" method="get" action="list.asp">
            <td height="30">用户搜索:
              <input name="searchkey" type="text" class=smallInput id="Searchkey" size="18" maxlength="50">
               <select   name=nSearch>
               <option   value=2> 检索全部
               <option   value=1> 检索已交费
               <option   value=0> 检索未交费
               </select>
              <input name="Query" type="submit" id="Query" value="搜 索">
              (输入姓名或手机号码或QQ号码中可能包含的关键字)</td>
          </form>
        </tr>
        <tr>
             <td>待填充</td>
        </tr>
        <tr>
             <td>待填充</td>
        </tr>
      </table>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#eeeeee">
  <tr height="22" valign="middle" align="center">
    <td height="25" colspan="9" bgcolor="#F9F9F9"><strong>团购人员明细表</td>
  </tr>
  <tr>
    <td width="10%" bgcolor="#FFFFFF" align="center"><b>姓 名</b></td>
    <td width="4%"  bgcolor="#FFFFFF" align="center"><b>性 别</b></td>
    <td width="10%" bgcolor="#FFFFFF" align="center"><b>手 机</b></td>
    <td width="10%" bgcolor="#FFFFFF" align="center"><b>Q Q号</b></td>
    <td width="15%" bgcolor="#FFFFFF" align="center"><b>登记日期</b></td>
    <td width="15%" bgcolor="#FFFFFF" align="center"><b>交费日期</b></td>
    <td bgcolor="#FFFFFF" align="center"><b>备 注</b></td>
    <td width="10%" bgcolor="#FFFFFF" align="center"><b>状 态</b></td>
    <td width="10%" bgcolor="#FFFFFF" align="center"><b>操 作</b></td>
  </tr>
<%
set rs=server.createobject("adodb.recordset")
dim searchkey, sWhere
searchkey=Trim(request("searchkey"))
nSearch=request("nSearch")
If searchkey<>"" Then
    sWhere = "(y_UserName like '%" & searchkey & "%' or y_UserMobile like '%" & searchkey & "%' or y_UserQQ like '%" & searchkey & "%') And "
Else
    sWhere = ""
End If
If nSearch=1 Then
    sWhere = sWhere & "y_PayTime<>''"
ElseIf nSearch=0 Then
    sWhere = sWhere & "y_PayTime=''"
Else
    If searchkey<>"" Then sWhere = Left(sWhere, Len(sWhere)-4)
End If
If sWhere<>"" Then sWhere = " Where " & sWhere
sql="select * from [puser]" & sWhere & " order by y_RegTime desc"
rs.open sql,conn,1,1
const maxperpage=20 '每一页显示                                 
dim currentpage                                   
rs.pagesize=maxperpage                                   
currentpage=request.querystring("pageid")                                   
if currentpage="" then                                   
currentpage=1                                   
elseif currentpage<1 then                                   
currentpage=1                                   
else                                   
currentpage=clng(currentpage)                                   
    if currentpage > rs.pagecount then                                   
    currentpage=rs.pagecount                                   
    end if                                   
end if                                                                     
if not isnumeric(currentpage) then                                   
currentpage=1                                   
end if                                   
dim totalput,n                                 
totalput=rs.recordcount                                   
if totalput mod maxperpage=0 then                                   
n=totalput\maxperpage                                   
else                                   
n=totalput\maxperpage+1                                   
end if                                   
if n=0 then                                   
n=1                                   
end if                                   
rs.move(currentpage-1)*maxperpage                                   
i=0                                   
do while i< maxperpage and not rs.eof
%>
  <tr>
    <td bgcolor="#FFFFFF" ><%=rs("y_UserName")%></td>
    <td bgcolor="#FFFFFF" align="center"><%If rs("y_UserSex")="男" Then
    Response.Write "男"
    Else
    Response.Write "女"
    End if%></td>
    <td bgcolor="#FFFFFF" align="center"><%=rs("y_UserMobile")%></td>
    <td bgcolor="#FFFFFF" align="center"><%=rs("y_UserQQ")%></td>
    <td bgcolor="#FFFFFF" align="center"><%=rs("y_Regtime")%></td>
    <td bgcolor="#FFFFFF" align="center"><%=rs("y_PayTime")%></td>
    <td bgcolor="#FFFFFF" align="center"><%=rs("y_Demo")%></td>
    <td bgcolor="#FFFFFF" align="center"><%
    If rs("y_PayTime")<>"" Then
    Response.Write "<font color='blue'>已交费</font>"
    Else
    Response.Write "<font color='red'>未交费</font>"
    End if
    %></td>
    <td bgcolor="#FFFFFF" align="center"><a href="edit_user.asp?id=<%=rs("y_Id")%>">修改</a> | <a href="?del=del&id=<%=rs("y_Id")%>" onClick="return deluser();">删除</a></td>
  </tr>
<%                                 
i=i+1                                 
rs.movenext                                 
loop                                 
%>
</table>
<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr><td height=15></td></tr>
<tr>                           
<td align=center>页数:<%=currentpage%>/<% =n%>                           
<%k=currentpage                                                                              
if k<>1 then%>                        
[<a href=list.asp?pageid=1>首 页</a>]&nbsp;&nbsp;[<a href=list.asp?pageid=<%=k-1%>>上一页</a>]<%else%>          &nbsp;&nbsp;[首 页]&nbsp;&nbsp;[上一页]&nbsp;                                                                           
<%end if%>
<%if k<>n then%>                                                                              
[<a href=list.asp?pageid=<%=k+1%>>下一页</a>]&nbsp;&nbsp;[<a href=list.asp?pageid=<%=n%>>尾 页</a>]<%else%>            [下一页]&nbsp;&nbsp;[尾 页]                                                                              
<%end if%>
共有 <font color=red><%=totalput%></font> 条记录
</td></tr><tr><td height=15></td></tr>      
</table>
</body>
</html>
[ 本帖最后由 zpfree 于 2010-8-29 02:44 编辑 ]

附件

000.jpg (121.31 KB)

2010-8-29 02:44

显示效果

作者: zpfree   发布时间: 2010-08-29

又是IF语句。。
难道不会使用Select Case语句来控制一个页面进行:增删改查吗?

作者: wangsdong   发布时间: 2010-08-29

楼主最好先看一下应该如何用SQL语句分页和参数化执行,再就是组织好代码,这样可重用性低的混排代码修改起来真是噩梦

作者: KarasCanvas   发布时间: 2010-08-29

是的,我头都爆啦··

作者: zpfree   发布时间: 2010-08-29

option标签你为何不关闭?

作者: fonqing   发布时间: 2010-08-29

关闭了也不成,还是查不出来为交费的··

作者: zpfree   发布时间: 2010-08-29

相关阅读 更多