+ -
当前位置:首页 → 问答吧 → 大牛们~帮帮我了啦~我是做一个图书管理系统查询书籍的功能,出了个查询方面的小问题。

大牛们~帮帮我了啦~我是做一个图书管理系统查询书籍的功能,出了个查询方面的小问题。

时间:2011-12-09

来源:互联网

我在做一个图书馆的管理系统,这个是要进行查询书籍信息。当我让用户输入日期的范围的时候,如果用户输入不正确,那么我就应该提示读者填写的日期不正确,查找不出来要求的书籍。但现在是,我的输入日期是错误的,但依然能根据别的输入信息查询到图书。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>

<table border=1 id='result' >
<%

dim sql
dim bbID,bbName,bbPub,bbDate,bbAuthor,bbMem,bbCnt

Function fmtDate(d)
  If IsData(d) Then
  fmtDate = Year(d) & "-" & Month(d) & "-" & Day(d)
  Else
  fmtDate = ""
  End If
End Function 





//用户录入信息
bbID=Request.Form("bID")
bbName=Request.Form("bName")
bbPub=Request.Form("bPub")
bbDate0=Request.Form("bDate0")
bbDate1=Request.Form("bDate1")
bbAuthor=Request.Form("bAuthor")
bbMem=Request.Form("bMem")

set regex=new Regexp
regex.Global=True
regex.IgnoreCase=True
regex.Pattern="^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$"



dim rs
//该查询已经通过
 sql="SELECT * FROM Book WHERE bID like '%"&bbID&"%' and bName like '%"&bbName&"%'and bPub like '%"&bbPub&"%'and bMem like '%"&bbMem&"%'and bAuthor like '%"&bbAuthor&"%' "

if bbDate0<>"" then
if regex.Test(bbDate0) then  
  sql=sql&"and bDate >=#"&bbDate0&"#" 
else
response.write "<div id='result' style='display:none'>2</div>第一个出版日期格式错误"
End if
End if 

if bbDate1<>"" then
if regex.Test(bbDate1) then  
  sql=sql&"and bDate <=#"&bbDate1&"#" 
else
response.write "<div id='result' style='display:none'>2</div>第二个出版日期格式错误"
End if
End if 

set rs=Session("s_DBConn").Execute (sql)

while NOT rs.EOF
////书号
//书名
//总数量
//在库数量
//出版社
//出版日期(格式为 yyyy-mm-dd 如“2008-09-6”)
//作者
//内容摘要
//注意在库数量需要改变<td>"&rs("bExistCnt")&"</td>这里暂时这么存着,把Bid多打了一次应付输出

Response.Write("<tr><td>"&rs("bID")&"</td>")
Response.Write("<td>"&rs("bName")&"</td>")
Response.Write("<td>"&rs("bCnt")&"</td>")
Response.Write("<td>"&rs("bnCnt")&"</td>")
Response.Write("<td>"&rs("bPub")&"</td>")
response.write ("<td>"&Replace(rs("bDate").value, "/", "-")&"</td>")
'Response.Write("<td>"FormatDate(rs("bDate"),%Y-%M-%D)"</td>")
'response.write ("<td>"&fmtDate(rs("bDate"))&"</td>")
Response.Write("<td>"&rs("bAuthor")&"</td>")
Response.Write("<td>"&rs("bMem")&"</td></tr><br>")
rs.MoveNext()
wend

if rs.EOF then Response.Write("<table border=1 id='result' ></table>")

rs.Close()
set rs=nothing

%>
</table>
</body>
</html>

作者: shaoxin0827   发布时间: 2011-12-09

没看出来,

作者: a905472886   发布时间: 2011-12-09