¡¡¡¡<%@ codepage=65001%>
¡¡¡¡<%
¡¡¡¡option explicit
¡¡¡¡%>
¡¡¡¡<% Response.Charset="utf-8"%>
¡¡¡¡<% Session.CodePage=65001 %>
¡¡¡¡<!-- #include file="AccHelper.asp" -->
¡¡¡¡<!-- #include file="Common.asp"-->
¡¡¡¡<!-- #include file="DAL_Guest.asp" -->
¡¡¡¡<!-- #include file="MOD_Guest.asp" -->
¡¡¡¡<!-- #include file="BLL_Guest.asp" -->
¡¡¡¡<%
¡¡¡¡Dim mybll
¡¡¡¡Dim myList
¡¡¡¡Set mybll = new BLL_Guest
¡¡¡¡Select Case Request("tCMD")
¡¡¡¡Case "SAVE"
¡¡¡¡mybll.Insert()
¡¡¡¡Case "DEL"
¡¡¡¡mybll.Delete()
¡¡¡¡End Select
¡¡¡¡myList = mybll.FindByPage()
¡¡¡¡%>
¡¡¡¡<h2>¿Í»§ÁôÑÔ</h2>
¡¡¡¡<p>
¡¡¡¡<form name="subForm" id="subForm">
¡¡¡¡<textarea id="con" name="con" cols="56" rows="6" wrap="VIRTUAL"></textarea>
¡¡¡¡<input type="button" name="submit" value="Ìá½»ÁôÑÔ" onclick="$('guest/index.asp?tCMD=SAVE&content='+escape(this.form.con.value))" />
¡¡¡¡</form>
¡¡¡¡</p>
¡¡¡¡<%=myList%>
¡¡¡¡BLL_Guest.asp
¡¡¡¡<%
¡¡¡¡'/// <summary>
¡¡¡¡'/// ժҪ˵Ã÷¡£
¡¡¡¡'/// </summary>
¡¡¡¡Class BLL_Guest
¡¡¡¡Private mycom,mymod,mydal
¡¡¡¡Private LI,UL
¡¡¡¡Private DEL
¡¡¡¡'»ñÈ¡ÐÅÏ¢
¡¡¡¡Public Sub GetGuest()
¡¡¡¡mydal.GetGuest(Id)
¡¡¡¡End Sub
¡¡¡¡'ÐÂÔöÐÅÏ¢
¡¡¡¡Public Sub Insert()
¡¡¡¡mymod.Content = Request("content")
¡¡¡¡mymod.re = Request("Re")
¡¡¡¡mymod.Addtime = Now()
¡¡¡¡mymod.Ip = request.servervariables("HTTP_X_FORWARDED_FOR")
¡¡¡¡If len(mymod.Ip)<=0 Then mymod.Ip = request.servervariables("REMOTE_ADDR")
¡¡¡¡Call mydal.Insert(mymod)
¡¡¡¡End Sub
¡¡¡¡'¸üÐÂÐÅÏ¢
¡¡¡¡Public Sub Update()
¡¡¡¡Call mydal.Update(mymod)
¡¡¡¡End Sub
¡¡¡¡'ɾ³ýÐÅÏ¢
¡¡¡¡Public Sub Delete()
¡¡¡¡mydal.Delete(Request("Id"))
¡¡¡¡End Sub
¡¡¡¡'²éÕÒÐÅÏ¢
¡¡¡¡Public Function FindByPage()
¡¡¡¡Dim PageSize,CurrentPage,WhereValue,OrderValue,RecordCount
¡¡¡¡Dim objRS
¡¡¡¡Dim tmp1,tmp2,tmp3,parms,i
¡¡¡¡Dim tCMD
¡¡¡¡tCMD = Request("tCMD")
¡¡¡¡PageSize = "8"
¡¡¡¡CurrentPage = Request("PageNo")
¡¡¡¡If Len(CurrentPage)<=0 Then
¡¡¡¡CurrentPage=1
¡¡¡¡End If
¡¡¡¡WhereValue = ""
¡¡¡¡OrderValue = "Id"
¡¡¡¡Set objRS = mydal.FindByPage(PageSize,CurrentPage-1,WhereValue,OrderValue)
¡¡¡¡i = 1
¡¡¡¡RecordCount = mydal.Count(WhereValue)
¡¡¡¡Do While Not objRS.EOF
¡¡¡¡If tCMD="DEL" Then
¡¡¡¡DEL = "<a href=""?tCMD=DEL&Id="&objRS("Id")&""">ɾ³ý</a>"
¡¡¡¡Else
¡¡¡¡DEL = ""
¡¡¡¡End If
¡¡¡¡parms=Array(i,objRS("content"),objRS("ip"),objRS("addtime"),DEL)
¡¡¡¡tmp1 = tmp1 & mycom.Format(LI,parms)
¡¡¡¡objRs.Movenext
¡¡¡¡i = i + 1
¡¡¡¡Loop
¡¡¡¡tmp3 = mycom.Page(PageSize,CurrentPage,RecordCount,"guest/index.asp?tCMD=LIST")
¡¡¡¡parms=Array(tmp1,tmp3)
¡¡¡¡tmp2 = tmp2 & mycom.Format(UL,parms)
¡¡¡¡FindByPage = tmp2
¡¡¡¡End Function
¡¡¡¡Private Sub Class_Initialize()
¡¡¡¡LI = "<li><span>{0}</span> <span>{1}</span><br /><span>×÷Õß:{2}</span> <span>{3}</span> <span>{4}</span></li>" & vbCrLf
¡¡¡¡UL = "<UL>{0}<li>{1}</li></UL>"
¡¡¡¡DEL = ""
¡¡¡¡Set mycom = new Common
¡¡¡¡set mymod = new MOD_Guest
¡¡¡¡set mydal = new DAL_Guest
¡¡¡¡End Sub
¡¡¡¡Private Sub Class_Terminate()
¡¡¡¡Set mycom = Nothing
¡¡¡¡Set mymod = Nothing
¡¡¡¡set mydal = Nothing
¡¡¡¡End Sub
¡¡¡¡End Class
¡¡¡¡%>
¡¡¡¡DAL_Guest.asp
¡¡¡¡<%
¡¡¡¡'/// <summary>
¡¡¡¡'/// ժҪ˵Ã÷¡£
¡¡¡¡'/// </summary>
¡¡¡¡Class DAL_Guest
¡¡¡¡Private SQL_01
¡¡¡¡Private SQL_02
¡¡¡¡Private SQL_03
¡¡¡¡Private SQL_04
¡¡¡¡Private SQL_05
¡¡¡¡Private SQL_06
¡¡¡¡Private SQL_07
¡¡¡¡Private mycom,myacc,mymod
¡¡¡¡'/// <summary>
¡¡¡¡'/// »ñµÃÐÅÏ¢
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="Id">ÅжÏ×Ö¶Î</param>
¡¡¡¡'/// <returns>ÐÅÏ¢Ìå</returns>
¡¡¡¡Public Function GetGuest(Id)
¡¡¡¡Dim parms,SQL,objRS
¡¡¡¡parms = Array(Id)
¡¡¡¡SQL = mycom.Format(SQL_01,parms)
¡¡¡¡Set objRS = myacc.ExecuteReader(myacc.CONN_STRING,SQL)
¡¡¡¡If Not objRS.EOF then
¡¡¡¡Call mymod.SetVar(objRs("Id"),objRs("Content"),objRs("Re"),objRs("Addtime"),objRs("Ip"))
¡¡¡¡Set GetGuest = mymod
¡¡¡¡Else
¡¡¡¡GetGuest = Null
¡¡¡¡End If
¡¡¡¡End Function
¡¡¡¡'/// <summary>
¡¡¡¡'/// ²åÈëÐÅÏ¢
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="">ÐÅÏ¢Ìå</param>
¡¡¡¡Public Sub Insert(vmod)
¡¡¡¡Dim parms,SQL
¡¡¡¡parms = Array(vmod.Content,vmod.Re,vmod.Addtime,vmod.Ip)
¡¡¡¡SQL = mycom.Format(SQL_02,parms)
¡¡¡¡Call myacc.ExecuteReader(myacc.CONN_STRING,SQL)
¡¡¡¡End Sub
¡¡¡¡'/// <summary>
¡¡¡¡'/// ¸üÐÂÐÅÏ¢
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="">ÐÅÏ¢Ìå</param>
¡¡¡¡Public Sub Update(vmod)
¡¡¡¡Dim parms,SQL
¡¡¡¡parms = Array(vmod.Id,vmod.Content,vmod.Re,vmod.Addtime,vmod.Ip)
¡¡¡¡SQL = mycom.Format(SQL_03,parms)
¡¡¡¡Call myacc.ExecuteReader(myacc.CONN_STRING,SQL)
¡¡¡¡End Sub
¡¡¡¡'/// <summary>
¡¡¡¡'/// ɾ³ýÐÅÏ¢
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="">ÐÅÏ¢Ìå</param>
¡¡¡¡Public Sub Delete(Id)
¡¡¡¡Dim parms,SQL
¡¡¡¡parms = Array(Id)
¡¡¡¡SQL = mycom.Format(SQL_04,parms)
¡¡¡¡Call myacc.ExecuteNonQuery(myacc.CONN_STRING,SQL)
¡¡¡¡End Sub
¡¡¡¡'/// <summary>
¡¡¡¡'/// ͳ¼ÆÐÅÏ¢
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="">ÐÅÏ¢Ìå</param>
¡¡¡¡Public Function Count(WhereValue)
¡¡¡¡Dim parms,SQL,objRS
¡¡¡¡parms = Array(WhereValue)
¡¡¡¡SQL = mycom.Format(SQL_07,parms)
¡¡¡¡Set objRS = myacc.Recordset(myacc.CONN_STRING,SQL)
¡¡¡¡Count = objRS.RecordCount
¡¡¡¡End Function
¡¡¡¡'/// <summary>
¡¡¡¡'/// ¸ù¾ÝÌõ¼þÁгöËùÓÐÐÅÏ¢(´øÓзÖÒ³)
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="PageSize">ÿҳ¼Ç¼Êý</param>
¡¡¡¡'/// <param name="CurrentPage">Ò³Âë</param>
¡¡¡¡'/// <param name="WhereValue">ÅжÏÖµ</param>
¡¡¡¡'/// <param name="OrderValue">ÅÅÐò</param>
¡¡¡¡'/// <returns>·µ»ØobjRS</returns>
¡¡¡¡Public Function FindByPage(PageSize,CurrentPage,WhereValue,OrderValue)
¡¡¡¡Dim parms,SQL,objRS
¡¡¡¡Dim s1
¡¡¡¡If CurrentPage="0" Then
¡¡¡¡s1 = PageSize & "|" + OrderValue & "|" & WhereValue
¡¡¡¡parms = Split(s1,"|")
¡¡¡¡SQL = mycom.Format(SQL_05,parms)
¡¡¡¡Else
¡¡¡¡s1 = PageSize & "|" & OrderValue & "|" + WhereValue & "|" & CurrentPage*PageSize
¡¡¡¡parms = Split(s1,"|")
¡¡¡¡SQL = mycom.Format(SQL_06,parms)
¡¡¡¡End If
¡¡¡¡Set objRS = myacc.ExecuteReader(myacc.CONN_STRING,SQL)
¡¡¡¡Set FindByPage = objRS
¡¡¡¡End Function
¡¡¡¡Private Sub Class_Initialize()
¡¡¡¡SQL_01 = "Select * From [Guest] Where Id = {0}"
¡¡¡¡SQL_02 = "Insert into [Guest] ([Content],[Re],[Addtime],[Ip]) values('{0}','{1}','{2}','{3}')"
¡¡¡¡SQL_03 = "Update [Guest] Set [Content]='{1}',[Re]='{2}',[Addtime]='{3}',[Ip]='{4}' Where Id = {0}"
¡¡¡¡SQL_04 = "Delete From [Guest] Where Id In ({0})"
¡¡¡¡SQL_05 = "Select Top {0} * From [Guest] Where Content Like '%{2}%' Order By {1} Desc,Id Desc"
¡¡¡¡SQL_06 = "Select Top {0} * From [Guest] Where Content Like '%{2}%' And Id Not IN(Select Top {3} Id From [Guest] Where Content Like '%{2}%' Order By {1} Desc,Id Desc) Order By {1} Desc,Id Desc"
¡¡¡¡SQL_07 = "Select * From [Guest] Where Content Like '%{0}%' "
¡¡¡¡Set mycom = new Common
¡¡¡¡Set myacc = new AccHelper
¡¡¡¡Set mymod = new MOD_Guest
¡¡¡¡End Sub
¡¡¡¡Private Sub Class_Terminate()
¡¡¡¡Set mycom = Nothing
¡¡¡¡Set myacc = Nothing
¡¡¡¡Set mymod = Nothing
¡¡¡¡End Sub
¡¡¡¡End Class
¡¡¡¡%>
¡¡¡¡MOD_Guest.asp
¡¡¡¡<%
¡¡¡¡'/// <summary>
¡¡¡¡'/// ժҪ˵Ã÷¡£
¡¡¡¡'/// </summary>
¡¡¡¡Class MOD_Guest
¡¡¡¡Public Id
¡¡¡¡Public Content
¡¡¡¡Public Re
¡¡¡¡Public Addtime
¡¡¡¡Public Ip
¡¡¡¡Public Sub SetVar(vId,vContent,vRe,vAddtime,vIp)
¡¡¡¡Id=vId
¡¡¡¡Content=vContent
¡¡¡¡Re=vContent
¡¡¡¡Addtime=vAddtime
¡¡¡¡Ip=vIp
¡¡¡¡End Sub
¡¡¡¡End Class
¡¡¡¡%>
¡¡¡¡Common.asp
¡¡¡¡<%
¡¡¡¡'/// <summary>
¡¡¡¡'/// ժҪ˵Ã÷
¡¡¡¡'/// </summary>
¡¡¡¡Class Common
¡¡¡¡'/// <summary>
¡¡¡¡'/// »ñµÃÐÅÏ¢
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="Id">ÐèÒªÄÚÈÝ</param>
¡¡¡¡'/// <param name="Id">Ìæ»»¹Ø¼ü×Ö</param>
¡¡¡¡'/// <returns>¸ñʽ»¯ºóÄÚÈÝ</returns>
¡¡¡¡Public Function Format(str,arr)
¡¡¡¡Dim r,i
¡¡¡¡r = str
¡¡¡¡For i = 0 To UBound(arr)
¡¡¡¡r = Replace(r,"{"&i&"}",arr(i))
¡¡¡¡Next
¡¡¡¡Format = r
¡¡¡¡End Function
¡¡¡¡Public Function Page(PageSize,CurrentPage,RecordCount,PageUrl)
¡¡¡¡const C_RECORDCOUNT = "ºÏ¼Æ<STRONG><FONT color=""red"">{0}</FONT></STRONG>ƪ |"
¡¡¡¡const C_FIRSTPAGE1 = " <a href=""#"" onclick=""$('{0}&PageNo={1}')"">Ê×Ò³</a>"
¡¡¡¡const C_FIRSTPAGE2 = " Ê×Ò³"
¡¡¡¡const C_PREVPAGE1 = " <a href=""#"" onclick=""$('{0}&PageNo={1}')"">ÉÏÒ»Ò³</a>"
¡¡¡¡const C_PREVPAGE2 = " ÉÏÒ»Ò³"
¡¡¡¡const C_NEXTPAGE1 = " <a href=""#"" onclick=""$('{0}&PageNo={1}')"">ÏÂÒ»Ò³</a>"
¡¡¡¡const C_NEXTPAGE2 = " ÏÂÒ»Ò³"
¡¡¡¡const C_LASTPAGE1 = " <a href=""#"" onclick=""$('{0}&PageNo={1}')"">βҳ</a>"
¡¡¡¡const C_LASTPAGE2 = " βҳ"
¡¡¡¡const C_CURRENTPAGE = " Ò³´Î£º<STRONG><FONT color=""red"">{0}</FONT>/{1}</STRONG>Ò³"
¡¡¡¡const C_PAGESIZE = " <STRONG>{0}</STRONG>ƪ/Ò³ "
¡¡¡¡const C_GOTOPAGE = " Ìø×ª£º<input type=""text"" name=""goto"" value=""{1}"" onchange=""$('{0}&PageNo='+this.value)"" style=""width:20px;border:1px""/> "
¡¡¡¡Dim PageCount,pages
¡¡¡¡Dim lRecordCount,lFirstpage,lPrevpage,lNextpage,lLastpage,lCurrentpage,lPagesize,lGotopage
¡¡¡¡Dim p,parms
¡¡¡¡If RecordCount Mod PageSize <> 0 Then
¡¡¡¡pages = 1
¡¡¡¡else
¡¡¡¡pages = 0
¡¡¡¡End If
¡¡¡¡PageCount=CInt(RecordCount/PageSize + pages)
¡¡¡¡parms=Array(RecordCount)
¡¡¡¡lRecordCount = Format(C_RECORDCOUNT,parms)
¡¡¡¡if CInt(CurrentPage)>1 Then
¡¡¡¡parms=Array(Pageurl,1)
¡¡¡¡lFirstpage = Format(C_FIRSTPAGE1,parms)
¡¡¡¡parms=Array(Pageurl,CInt(CurrentPage)-1)
¡¡¡¡lPrevpage = Format(C_PREVPAGE1,parms)
¡¡¡¡Else
¡¡¡¡lFirstpage=C_FIRSTPAGE2
¡¡¡¡lPrevpage=C_PREVPAGE2
¡¡¡¡End If
¡¡¡¡if CInt(CurrentPage)<PageCount Then
¡¡¡¡parms=Array(Pageurl,CInt(CurrentPage)+1)
¡¡¡¡lNextpage = Format(C_NEXTPAGE1,parms)
¡¡¡¡parms=Array(Pageurl,CInt(CurrentPage)+1)
¡¡¡¡lLastpage = Format(C_LASTPAGE1,parms)
¡¡¡¡Else
¡¡¡¡lNextpage=C_NEXTPAGE2
¡¡¡¡lLastpage=C_LASTPAGE2
¡¡¡¡End If
¡¡¡¡parms=Array(CurrentPage,PageCount)
¡¡¡¡lCurrentpage = Format(C_CURRENTPAGE,parms)
¡¡¡¡parms=Array(PageSize)
¡¡¡¡lPagesize = Format(C_PAGESIZE,parms)
¡¡¡¡parms=Array(Pageurl,CurrentPage)
¡¡¡¡lGotopage = Format(C_GOTOPAGE,parms)
¡¡¡¡p=lRecordCount&lFirstpage&lPrevpage&lNextpage&lLastpage&lCurrentpage&lPagesize&lGotopage
¡¡¡¡Page = p
¡¡¡¡End Function
¡¡¡¡End Class
¡¡¡¡%>
¡¡¡¡AccHelper.asp
¡¡¡¡<%
¡¡¡¡'/// <summary>
¡¡¡¡'/// AccHelper µÄժҪ˵Ã÷¡£
¡¡¡¡'/// </summary>
¡¡¡¡Class AccHelper
¡¡¡¡Public CONN_STRING
¡¡¡¡'/// <summary>
¡¡¡¡'/// Ö´ÐÐExecuteNonQuery
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="connString">Á¬½Ó×Ö·û</param>
¡¡¡¡'/// <param name="cmdText">sqlÃüÁî</param>
¡¡¡¡Public Function ExecuteNonQuery(connString,cmdText)
¡¡¡¡Dim objConn
¡¡¡¡Set objConn = Server.CreateObject("ADODB.Connection")
¡¡¡¡objConn.Open connString
¡¡¡¡objConn.Execute(cmdText)
¡¡¡¡End Function
¡¡¡¡'/// <summary>
¡¡¡¡'/// Ö´ÐÐExecuteReader
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="connString">Á¬½Ó×Ö·û</param>
¡¡¡¡'/// <param name="cmdText">sqlÃüÁî</param>
¡¡¡¡'/// <returns>RS</returns>
¡¡¡¡Public Function ExecuteReader(connString,cmdText)
¡¡¡¡Dim objConn,objRS
¡¡¡¡Set objConn = Server.CreateObject("ADODB.Connection")
¡¡¡¡objConn.Open connString
¡¡¡¡Set objRS = objConn.Execute(cmdText)
¡¡¡¡Set ExecuteReader = objRS
¡¡¡¡End Function
¡¡¡¡'/// <summary>
¡¡¡¡'/// Ö´ÐÐRecordset
¡¡¡¡'/// </summary>
¡¡¡¡'/// <param name="connString">Á¬½Ó×Ö·û</param>
¡¡¡¡'/// <param name="cmdText">sqlÃüÁî</param>
¡¡¡¡'/// <returns>RS</returns>
¡¡¡¡Public Function Recordset(connString,cmdText)
¡¡¡¡Dim objConn,objRS
¡¡¡¡Set objConn = Server.CreateObject("ADODB.Connection")
¡¡¡¡objConn.Open connString
¡¡¡¡Set objRS = Server.CreateObject("ADODB.RecordSet")
¡¡¡¡objRS.Open cmdText,objConn,1,3
¡¡¡¡Set Recordset = objRS
¡¡¡¡End Function
¡¡¡¡Private Sub Class_Initialize()
¡¡¡¡CONN_STRING = "provider = microsoft.jet.oledb.4.0;data source=" & Server.Mappath("db.mdb")
¡¡¡¡End Sub
¡¡¡¡End Class
¡¡¡¡%>