當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
基于javascript的asp数据库操作类,含分页、字符串截取、用户登陆验证[原创]
生活随笔
收集整理的這篇文章主要介紹了
基于javascript的asp数据库操作类,含分页、字符串截取、用户登陆验证[原创]
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2005.01.15發(fā)表于blog.csdn.net/zxub
無(wú)聊又用了用asp,發(fā)現(xiàn)還是不爽,已經(jīng)習(xí)慣了面向?qū)ο罅?就想改進(jìn)了,vbscript不用,感覺(jué)看起來(lái)很不爽,就用javascript寫(xiě)了下面?zhèn)€類(lèi):
<%
//
//????????????//
//??? 用Javascript實(shí)現(xiàn)的一個(gè)數(shù)據(jù)庫(kù)操作類(lèi)??????? //
//?????????????? //
//
?function DBOperate()
?{
??this.DBType=0;? //數(shù)據(jù)文件類(lèi)別號(hào),用以實(shí)現(xiàn)獲取不同的表
??????? this.DBPath="";? //數(shù)據(jù)庫(kù)文件相對(duì)站點(diǎn)的存放地址
??this.ConnString; //連接字符串
??this.Conn; //數(shù)據(jù)庫(kù)連接對(duì)象
??this.RS;?? //數(shù)據(jù)集
??this.SQLString;? //操作數(shù)據(jù)庫(kù)的SQL語(yǔ)句
??this.GetDBPath=GetDBPath;? //獲取數(shù)據(jù)庫(kù)路徑
??this.RSMoveType=1; //紀(jì)錄集移動(dòng)方式:
?????????????????? //0為只讀,當(dāng)前數(shù)據(jù)記錄只能向下移動(dòng);
?????????????????? //1為只讀,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng);
?????????????????? //2為可讀寫(xiě),當(dāng)前數(shù)據(jù)記錄可自由移動(dòng);
?????????????????? //3為可讀寫(xiě),當(dāng)前數(shù)據(jù)記錄可自由移動(dòng),可看到新增記錄
?????? //RS.MoveFirst(),RS.MoveLast(),RS.MoveNext(),RS.MovePrevious().
?????? //RS.Move(n) 方法:從當(dāng)前位置移動(dòng)n條記錄,n>0為正向,n<0為反向,
?????? //RS.Move(n,1) 方法:從第一條紀(jì)錄處移動(dòng)n條記錄,n>0,后面的參數(shù)只能為1
??this.RSLockType=1; //紀(jì)錄集鎖定方式:
?????????????????? //1為缺省鎖定類(lèi)型,記錄集是只讀的,不能修改記錄
?????? //2為悲觀鎖定,當(dāng)修改記錄時(shí),數(shù)據(jù)提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開(kāi)始,則立即鎖住記錄。
?????????????????? //3為樂(lè)觀鎖定,直到用Update方法提交更新記錄時(shí)才鎖定記錄。
?????????????????? //4為批量樂(lè)觀鎖定,允許修改多個(gè)記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。
??//*************************************************************************
??//當(dāng)分頁(yè)的時(shí)候,計(jì)算TotalRecordCount和TotalPageCount
??//*************************************************************************
??this.TotalRecordCount=0;? //紀(jì)錄集總紀(jì)錄數(shù),開(kāi)始由于沒(méi)紀(jì)錄集,所以為0
??this.PageSize=10;??? //每頁(yè)最大紀(jì)錄數(shù),默認(rèn)為10
??this.TotalPageCount=0;? //最大頁(yè)數(shù).?
??//*************************************************************************
??this.CurrentPageID=1;? //當(dāng)前頁(yè)碼,默認(rèn)為1
??this.CurrentPageTag="CurrentPageID";
??this.GotoPageName="";? //顯示紀(jì)錄的頁(yè)面名稱(chēng),默認(rèn)為當(dāng)前頁(yè)面
??function GetDBPath()
??{
???switch (this.DBType)
???{
????case 1:
?????this.DBPath="/data/#info.asp";
?????break;
????case 2:
?????this.DBPath="/data/#members.asp";
?????break;
????case 3:
?????this.DBPath="/data/#tradeinfo.asp";
?????break;
????default:Response.Write("數(shù)據(jù)類(lèi)別號(hào)有誤!");Response.End;break;
???}
???if (this.DBPath!=null)
???{
????this.ConnString="Provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath(this.DBPath);
???}
??}
??this.DBOpen=DBOpen;
??function DBOpen()? //打開(kāi)數(shù)據(jù)庫(kù)
??{
???try
???{
????this.Conn=Server.CreateObject("ADODB.Connection");
????this.Conn.Open(this.ConnString);
???}
???catch (e)
???{
????Response.Write("數(shù)據(jù)庫(kù)連接錯(cuò)誤!");
????Response.End();
???}???
??}
??this.DBClose=DBClose;
??function DBClose()? //關(guān)閉數(shù)據(jù)庫(kù)
??{
???if (this.Conn!=null)
???{
????this.Conn.Close();
????this.Conn=null;
???}
??}
??this.GetRS=GetRS;
??function GetRS()? //產(chǎn)生一個(gè)數(shù)據(jù)集對(duì)象
??{
???if (this.Conn!=null)
???{
????var i=Request.QueryString(this.CurrentPageTag).Count;
????if (i>0)
????{
?????this.CurrentPageID=parseInt(Request.QueryString(this.CurrentPageTag));
?????if (this.CurrentPageID<=0)
?????{
??????this.DBClose();
??????Response.Write("頁(yè)碼超出合法范圍!");
??????Response.End();
?????}
????}
????this.RS=Server.CreateObject("ADODB.RecordSet");
????this.RS.Open(this.SQLString,this.Conn,this.RSMoveType,this.RSLockType);
????this.TotalRecordCount=this.RS.RecordCount;
????this.TotalPageCount=Math.ceil(this.TotalRecordCount/this.PageSize);
????var EndPage=this.TotalPageCount;
????if (EndPage==0) EndPage=1;
????if (this.CurrentPageID>EndPage)
????{
?????this.DBClose();
?????Response.Write("頁(yè)碼超出合法范圍!");
?????Response.End();
????}
???}????
???else
???{
????Response.Write("沒(méi)有連接到數(shù)據(jù)庫(kù)!");
????Response.End();
???}
??}
??this.CloseRS=CloseRS;
??function CloseRS() //關(guān)閉數(shù)據(jù)集對(duì)象
??{
???if (this.RS!=null)
???{
????this.RS.Close();
????this.RS=null;
???}
??}
??this.DBExecSQL=DBExecSQL;
??function DBExecSQL()? //執(zhí)行SQL語(yǔ)句,用于執(zhí)行添加、刪除、修改操作
??{
???if (this.Conn!=null)
???{
????this.Conn.Execute(this.SQLString);
???}
???else
???{
????Response.Write("沒(méi)有連接到數(shù)據(jù)庫(kù)!");
????Response.End();
???}
??}
??this.RSIsEmpty=RSIsEmpty;
??function RSIsEmpty()
??{
???if (this.RS!=null)
???{
????if ((this.RS.BOF) && (this.RS.EOF))
????{
?????//RS is empty
?????return true;
????}
????else
????{
?????//RS not empty
?????return false;
????}
???}
???else
???{
????Response.Write("沒(méi)有連接到數(shù)據(jù)庫(kù)!");
????Response.End();
???}???
??}
??this.SetPager=SetPager;
??function SetPager()
??{
???var PreviousPageID=this.CurrentPageID-1;
???var NextPageID=this.CurrentPageID+1;
???var HomePage=1;
???var EndPage=this.TotalPageCount;
???//************************************************************
???/*this.RS.MoveFirst();
???this.RS.Move((this.CurrentPageID-1)*this.PageSize,1);
???var j=0;
???while (!this.RS.eof && j<this.PageSize)
???{
????Response.Write(this.RS("type")+"<br>");
????j=j+1;
????this.RS.MoveNext();
???}*/
???//************************************************************???
???var PagerString="";
???PagerString+="<table width=\"100%\" height=\"25\"? border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"font-size:9pt\">";
???PagerString+="<tr>";
???PagerString+="<td align=\"right\" valign=\"middle\">合計(jì) <strong><font color=\"#FF0000\">";
???PagerString+=this.TotalRecordCount;
???PagerString+="</font></strong> 個(gè) | ";
???if (this.CurrentPageID==HomePage)
???{
????PagerString+="<A disabled>首頁(yè)</A> <A disabled>上一頁(yè)</A> ";
???}
???else
???{
????PagerString+="<A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+HomePage+">首頁(yè)</A> <A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+PreviousPageID+">上一頁(yè)</A> ";
???}
???if (this.CurrentPageID==EndPage)
???{
????PagerString+="<A disabled>下一頁(yè)</A> <A disabled>尾頁(yè)</A> </td>";
???}
???else
???{
????PagerString+="<A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+NextPageID+">下一頁(yè)</A> <A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+EndPage+">尾頁(yè)</A> </td>";
???}
???PagerString+="<td width=\"120\" align=\"center\" valign=\"middle\">頁(yè)次:<strong><font color=\"#FF0000\">";
???PagerString+=this.CurrentPageID;
???PagerString+="</font>/";
???PagerString+=this.TotalPageCount+" ";
???PagerString+=this.PageSize+"</strong>個(gè)/頁(yè) </td>"
???PagerString+="<td width=\"36\" align=\"right\" valign=\"middle\">轉(zhuǎn)到: </td>"
???PagerString+="<td width=\"76\" align=\"left\" valign=\"middle\">";
???PagerString+="<select size=1 name=CurrentPage style='font-size:9pt;width:60px' οnchange=\"document.location=\'"+this.GotoPageName+"?"+this.CurrentPageTag+"=\'+this.options[this.selectedIndex].value\">";
???for (i=1;i<=this.TotalPageCount;i++)
???{
????if(this.CurrentPageID==i)
????{
?????PagerString+="<option selected value="+i+">第"+i+"頁(yè)</option>";
????}
????else
????{
?????PagerString+="<option value="+i+">第"+i+"頁(yè)</option>";
????}
???}
???PagerString+="</select>";
???PagerString+="</td>";
???PagerString+="</tr>";
???PagerString+="</table>"?
???if (EndPage>0)
???{
????return(PagerString);
???}
???else
???{
????return("");
???}
??}
?}?
%>
<%
//
//????????????//
//??? 字符串操作??????????????????????????????? //
//?????????????? //
//
?? function CutString(InputString,AppendString,CutLen)
??{
???InputString=String(InputString);
???AppendString=String(AppendString);
???var FactLen=0,TempString="",i;
???var Strlength=InputString.length;
???for (i=0;i<Strlength;i++)
???{
????if (InputString.charCodeAt(i)>255)
????{
?????FactLen+=2;
????}
????else
????{
?????FactLen+=1;
????}????
????if (FactLen>CutLen)
?????break;????
????try
????{
?????TempString+=InputString.substr(i,1);
????}
????catch (e)
????{
?????break;
????}????
???}
???if (FactLen>CutLen)
???{
????TempString+=AppendString;
???}
???return TempString;
??}??
%>
<%
///
//
//? 空格及回車(chē)的顯示??????????????????????????? //
//
//
? function AlignString(obj)
? {
? ?return String(obj).replace( /[\" "]/g," ").replace(/[\r]/g,"<br>");
? }
%>
<%
//
//????????????//
//??? 用Javascript實(shí)現(xiàn)的用戶(hù)身份驗(yàn)證類(lèi)??????????? //
//?????????????? //
//
?function UserLogin()
?{
??this.UnameField="";? //用戶(hù)名字段名稱(chēng)
??this.PwdField="";? //密碼字段名稱(chēng)
??this.LevelField="";? //用戶(hù)級(jí)別字段名稱(chēng)
??this.UserTableName="";? //存放用戶(hù)信息的表名稱(chēng)
??this.uname="";? //用戶(hù)名
??this.pwd="";? //密碼
??this.SessionOfName="";
??this.SessionOfPwd="";
??this.SessionOfLevel="";
??this.CheckLogin=CheckLogin;? //驗(yàn)證用戶(hù)是否登陸
??this.ErrorURL="";? //沒(méi)登陸時(shí)轉(zhuǎn)向的頁(yè)面
??this.OKURL="";? //登陸成功時(shí)轉(zhuǎn)向的頁(yè)面
??function CheckLogin()
??{
???var DBConn=new DBOperate();
???DBConn.DBType=0;
???DBConn.CurrentPageTag="#PID";
???DBConn.ConnString="Provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath("/data/#members.asp");
???DBConn.DBOpen();
???DBConn.SQLString="Select * from "+this.UserTableName+" where "+this.UnameField+"='"+this.uname.replace( /[\']/g,"#").replace( /[\s]/g,"#")+"' and "+this.PwdField+"='"+this.pwd.replace( /[\']/g,"#").replace( /[\s]/g,"#")+"'";
???DBConn.GetRS();
???if (DBConn.RSIsEmpty()==true)
???{
????DBConn.DBClose();
????DBConn=null;
????if (this.ErrorURL!="")
?????Response.Redirect(this.ErrorURL);
???}
???else
???{
????if (this.SessionOfName!="")
????{
?????Session(this.SessionOfName)=String(DBConn.RS(this.UnameField));
????}
????if (this.SessionOfPwd!="")
????{
?????Session(this.SessionOfPwd)=String(DBConn.RS(this.PwdField));
????}
????if (this.SessionOfLevel!="")
????{
?????Session(this.SessionOfLevel)=String(DBConn.RS(this.LevelField));
????}
????DBConn.CloseRS();
????DBConn.DBClose();
????DBConn=null;
????if (this.OKURL!="")
?????Response.Redirect(this.OKURL);
???}
??}
?}
%>
測(cè)試頁(yè)面代碼如下:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<!--#include FILE="DBO.asp"-->
<%
var DBobj=new DBOperate();
DBobj.CurrentPageTag="PID";
DBobj.DBType=2;
DBobj.GetDBPath();
DBobj.DBOpen();
DBobj.SQLString="select * from members";
DBobj.PageSize=4;
DBobj.GetRS();
//********************************************************************
if (!DBobj.RSIsEmpty())
{
DBobj.RS.MoveFirst();
DBobj.RS.Move((DBobj.CurrentPageID-1)*DBobj.PageSize,1);
var j=0;
while (!DBobj.RS.eof && j<DBobj.PageSize)//
{
?Response.Write(DBobj.RS("name")+"<br>");
?j=j+1;
?DBobj.RS.MoveNext();
}
}
//*********************************************************************
Response.Write("<br>");
//*********************************************************************
Response.Write(DBobj.SetPager());?? //分頁(yè)導(dǎo)航條高度為25
//*********************************************************************
Response.Write(CutString("啊撒123嬌散件 aaaa","#",8));
var Uobj=new UserLogin();
Uobj.UnameField="uname";
Uobj.PwdField="upwd";
Uobj.LevelField="ulevel";
Uobj.UserTableName="uadmi";
Uobj.uname="sadmin";
Uobj.pwd="sadmin";
Uobj.OKURL="";
Uobj.ErrorURL="2.htm";
Uobj.SessionOfName="aaa";
DBobj.CloseRS();
DBobj.DBClose();
DBobj=null;
Uobj.CheckLogin();
Response.Write(Session(Uobj.SessionOfName));
%>
具體效果把上面的代碼存成2個(gè)asp文件測(cè)試就知道了,不多說(shuō)了。
無(wú)聊又用了用asp,發(fā)現(xiàn)還是不爽,已經(jīng)習(xí)慣了面向?qū)ο罅?就想改進(jìn)了,vbscript不用,感覺(jué)看起來(lái)很不爽,就用javascript寫(xiě)了下面?zhèn)€類(lèi):
<%
//
//????????????//
//??? 用Javascript實(shí)現(xiàn)的一個(gè)數(shù)據(jù)庫(kù)操作類(lèi)??????? //
//?????????????? //
//
?function DBOperate()
?{
??this.DBType=0;? //數(shù)據(jù)文件類(lèi)別號(hào),用以實(shí)現(xiàn)獲取不同的表
??????? this.DBPath="";? //數(shù)據(jù)庫(kù)文件相對(duì)站點(diǎn)的存放地址
??this.ConnString; //連接字符串
??this.Conn; //數(shù)據(jù)庫(kù)連接對(duì)象
??this.RS;?? //數(shù)據(jù)集
??this.SQLString;? //操作數(shù)據(jù)庫(kù)的SQL語(yǔ)句
??this.GetDBPath=GetDBPath;? //獲取數(shù)據(jù)庫(kù)路徑
??this.RSMoveType=1; //紀(jì)錄集移動(dòng)方式:
?????????????????? //0為只讀,當(dāng)前數(shù)據(jù)記錄只能向下移動(dòng);
?????????????????? //1為只讀,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng);
?????????????????? //2為可讀寫(xiě),當(dāng)前數(shù)據(jù)記錄可自由移動(dòng);
?????????????????? //3為可讀寫(xiě),當(dāng)前數(shù)據(jù)記錄可自由移動(dòng),可看到新增記錄
?????? //RS.MoveFirst(),RS.MoveLast(),RS.MoveNext(),RS.MovePrevious().
?????? //RS.Move(n) 方法:從當(dāng)前位置移動(dòng)n條記錄,n>0為正向,n<0為反向,
?????? //RS.Move(n,1) 方法:從第一條紀(jì)錄處移動(dòng)n條記錄,n>0,后面的參數(shù)只能為1
??this.RSLockType=1; //紀(jì)錄集鎖定方式:
?????????????????? //1為缺省鎖定類(lèi)型,記錄集是只讀的,不能修改記錄
?????? //2為悲觀鎖定,當(dāng)修改記錄時(shí),數(shù)據(jù)提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開(kāi)始,則立即鎖住記錄。
?????????????????? //3為樂(lè)觀鎖定,直到用Update方法提交更新記錄時(shí)才鎖定記錄。
?????????????????? //4為批量樂(lè)觀鎖定,允許修改多個(gè)記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。
??//*************************************************************************
??//當(dāng)分頁(yè)的時(shí)候,計(jì)算TotalRecordCount和TotalPageCount
??//*************************************************************************
??this.TotalRecordCount=0;? //紀(jì)錄集總紀(jì)錄數(shù),開(kāi)始由于沒(méi)紀(jì)錄集,所以為0
??this.PageSize=10;??? //每頁(yè)最大紀(jì)錄數(shù),默認(rèn)為10
??this.TotalPageCount=0;? //最大頁(yè)數(shù).?
??//*************************************************************************
??this.CurrentPageID=1;? //當(dāng)前頁(yè)碼,默認(rèn)為1
??this.CurrentPageTag="CurrentPageID";
??this.GotoPageName="";? //顯示紀(jì)錄的頁(yè)面名稱(chēng),默認(rèn)為當(dāng)前頁(yè)面
??function GetDBPath()
??{
???switch (this.DBType)
???{
????case 1:
?????this.DBPath="/data/#info.asp";
?????break;
????case 2:
?????this.DBPath="/data/#members.asp";
?????break;
????case 3:
?????this.DBPath="/data/#tradeinfo.asp";
?????break;
????default:Response.Write("數(shù)據(jù)類(lèi)別號(hào)有誤!");Response.End;break;
???}
???if (this.DBPath!=null)
???{
????this.ConnString="Provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath(this.DBPath);
???}
??}
??this.DBOpen=DBOpen;
??function DBOpen()? //打開(kāi)數(shù)據(jù)庫(kù)
??{
???try
???{
????this.Conn=Server.CreateObject("ADODB.Connection");
????this.Conn.Open(this.ConnString);
???}
???catch (e)
???{
????Response.Write("數(shù)據(jù)庫(kù)連接錯(cuò)誤!");
????Response.End();
???}???
??}
??this.DBClose=DBClose;
??function DBClose()? //關(guān)閉數(shù)據(jù)庫(kù)
??{
???if (this.Conn!=null)
???{
????this.Conn.Close();
????this.Conn=null;
???}
??}
??this.GetRS=GetRS;
??function GetRS()? //產(chǎn)生一個(gè)數(shù)據(jù)集對(duì)象
??{
???if (this.Conn!=null)
???{
????var i=Request.QueryString(this.CurrentPageTag).Count;
????if (i>0)
????{
?????this.CurrentPageID=parseInt(Request.QueryString(this.CurrentPageTag));
?????if (this.CurrentPageID<=0)
?????{
??????this.DBClose();
??????Response.Write("頁(yè)碼超出合法范圍!");
??????Response.End();
?????}
????}
????this.RS=Server.CreateObject("ADODB.RecordSet");
????this.RS.Open(this.SQLString,this.Conn,this.RSMoveType,this.RSLockType);
????this.TotalRecordCount=this.RS.RecordCount;
????this.TotalPageCount=Math.ceil(this.TotalRecordCount/this.PageSize);
????var EndPage=this.TotalPageCount;
????if (EndPage==0) EndPage=1;
????if (this.CurrentPageID>EndPage)
????{
?????this.DBClose();
?????Response.Write("頁(yè)碼超出合法范圍!");
?????Response.End();
????}
???}????
???else
???{
????Response.Write("沒(méi)有連接到數(shù)據(jù)庫(kù)!");
????Response.End();
???}
??}
??this.CloseRS=CloseRS;
??function CloseRS() //關(guān)閉數(shù)據(jù)集對(duì)象
??{
???if (this.RS!=null)
???{
????this.RS.Close();
????this.RS=null;
???}
??}
??this.DBExecSQL=DBExecSQL;
??function DBExecSQL()? //執(zhí)行SQL語(yǔ)句,用于執(zhí)行添加、刪除、修改操作
??{
???if (this.Conn!=null)
???{
????this.Conn.Execute(this.SQLString);
???}
???else
???{
????Response.Write("沒(méi)有連接到數(shù)據(jù)庫(kù)!");
????Response.End();
???}
??}
??this.RSIsEmpty=RSIsEmpty;
??function RSIsEmpty()
??{
???if (this.RS!=null)
???{
????if ((this.RS.BOF) && (this.RS.EOF))
????{
?????//RS is empty
?????return true;
????}
????else
????{
?????//RS not empty
?????return false;
????}
???}
???else
???{
????Response.Write("沒(méi)有連接到數(shù)據(jù)庫(kù)!");
????Response.End();
???}???
??}
??this.SetPager=SetPager;
??function SetPager()
??{
???var PreviousPageID=this.CurrentPageID-1;
???var NextPageID=this.CurrentPageID+1;
???var HomePage=1;
???var EndPage=this.TotalPageCount;
???//************************************************************
???/*this.RS.MoveFirst();
???this.RS.Move((this.CurrentPageID-1)*this.PageSize,1);
???var j=0;
???while (!this.RS.eof && j<this.PageSize)
???{
????Response.Write(this.RS("type")+"<br>");
????j=j+1;
????this.RS.MoveNext();
???}*/
???//************************************************************???
???var PagerString="";
???PagerString+="<table width=\"100%\" height=\"25\"? border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"font-size:9pt\">";
???PagerString+="<tr>";
???PagerString+="<td align=\"right\" valign=\"middle\">合計(jì) <strong><font color=\"#FF0000\">";
???PagerString+=this.TotalRecordCount;
???PagerString+="</font></strong> 個(gè) | ";
???if (this.CurrentPageID==HomePage)
???{
????PagerString+="<A disabled>首頁(yè)</A> <A disabled>上一頁(yè)</A> ";
???}
???else
???{
????PagerString+="<A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+HomePage+">首頁(yè)</A> <A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+PreviousPageID+">上一頁(yè)</A> ";
???}
???if (this.CurrentPageID==EndPage)
???{
????PagerString+="<A disabled>下一頁(yè)</A> <A disabled>尾頁(yè)</A> </td>";
???}
???else
???{
????PagerString+="<A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+NextPageID+">下一頁(yè)</A> <A href="+this.GotoPageName+"?"+this.CurrentPageTag+"="+EndPage+">尾頁(yè)</A> </td>";
???}
???PagerString+="<td width=\"120\" align=\"center\" valign=\"middle\">頁(yè)次:<strong><font color=\"#FF0000\">";
???PagerString+=this.CurrentPageID;
???PagerString+="</font>/";
???PagerString+=this.TotalPageCount+" ";
???PagerString+=this.PageSize+"</strong>個(gè)/頁(yè) </td>"
???PagerString+="<td width=\"36\" align=\"right\" valign=\"middle\">轉(zhuǎn)到: </td>"
???PagerString+="<td width=\"76\" align=\"left\" valign=\"middle\">";
???PagerString+="<select size=1 name=CurrentPage style='font-size:9pt;width:60px' οnchange=\"document.location=\'"+this.GotoPageName+"?"+this.CurrentPageTag+"=\'+this.options[this.selectedIndex].value\">";
???for (i=1;i<=this.TotalPageCount;i++)
???{
????if(this.CurrentPageID==i)
????{
?????PagerString+="<option selected value="+i+">第"+i+"頁(yè)</option>";
????}
????else
????{
?????PagerString+="<option value="+i+">第"+i+"頁(yè)</option>";
????}
???}
???PagerString+="</select>";
???PagerString+="</td>";
???PagerString+="</tr>";
???PagerString+="</table>"?
???if (EndPage>0)
???{
????return(PagerString);
???}
???else
???{
????return("");
???}
??}
?}?
%>
<%
//
//????????????//
//??? 字符串操作??????????????????????????????? //
//?????????????? //
//
?? function CutString(InputString,AppendString,CutLen)
??{
???InputString=String(InputString);
???AppendString=String(AppendString);
???var FactLen=0,TempString="",i;
???var Strlength=InputString.length;
???for (i=0;i<Strlength;i++)
???{
????if (InputString.charCodeAt(i)>255)
????{
?????FactLen+=2;
????}
????else
????{
?????FactLen+=1;
????}????
????if (FactLen>CutLen)
?????break;????
????try
????{
?????TempString+=InputString.substr(i,1);
????}
????catch (e)
????{
?????break;
????}????
???}
???if (FactLen>CutLen)
???{
????TempString+=AppendString;
???}
???return TempString;
??}??
%>
<%
///
//
//? 空格及回車(chē)的顯示??????????????????????????? //
//
//
? function AlignString(obj)
? {
? ?return String(obj).replace( /[\" "]/g," ").replace(/[\r]/g,"<br>");
? }
%>
<%
//
//????????????//
//??? 用Javascript實(shí)現(xiàn)的用戶(hù)身份驗(yàn)證類(lèi)??????????? //
//?????????????? //
//
?function UserLogin()
?{
??this.UnameField="";? //用戶(hù)名字段名稱(chēng)
??this.PwdField="";? //密碼字段名稱(chēng)
??this.LevelField="";? //用戶(hù)級(jí)別字段名稱(chēng)
??this.UserTableName="";? //存放用戶(hù)信息的表名稱(chēng)
??this.uname="";? //用戶(hù)名
??this.pwd="";? //密碼
??this.SessionOfName="";
??this.SessionOfPwd="";
??this.SessionOfLevel="";
??this.CheckLogin=CheckLogin;? //驗(yàn)證用戶(hù)是否登陸
??this.ErrorURL="";? //沒(méi)登陸時(shí)轉(zhuǎn)向的頁(yè)面
??this.OKURL="";? //登陸成功時(shí)轉(zhuǎn)向的頁(yè)面
??function CheckLogin()
??{
???var DBConn=new DBOperate();
???DBConn.DBType=0;
???DBConn.CurrentPageTag="#PID";
???DBConn.ConnString="Provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath("/data/#members.asp");
???DBConn.DBOpen();
???DBConn.SQLString="Select * from "+this.UserTableName+" where "+this.UnameField+"='"+this.uname.replace( /[\']/g,"#").replace( /[\s]/g,"#")+"' and "+this.PwdField+"='"+this.pwd.replace( /[\']/g,"#").replace( /[\s]/g,"#")+"'";
???DBConn.GetRS();
???if (DBConn.RSIsEmpty()==true)
???{
????DBConn.DBClose();
????DBConn=null;
????if (this.ErrorURL!="")
?????Response.Redirect(this.ErrorURL);
???}
???else
???{
????if (this.SessionOfName!="")
????{
?????Session(this.SessionOfName)=String(DBConn.RS(this.UnameField));
????}
????if (this.SessionOfPwd!="")
????{
?????Session(this.SessionOfPwd)=String(DBConn.RS(this.PwdField));
????}
????if (this.SessionOfLevel!="")
????{
?????Session(this.SessionOfLevel)=String(DBConn.RS(this.LevelField));
????}
????DBConn.CloseRS();
????DBConn.DBClose();
????DBConn=null;
????if (this.OKURL!="")
?????Response.Redirect(this.OKURL);
???}
??}
?}
%>
測(cè)試頁(yè)面代碼如下:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<!--#include FILE="DBO.asp"-->
<%
var DBobj=new DBOperate();
DBobj.CurrentPageTag="PID";
DBobj.DBType=2;
DBobj.GetDBPath();
DBobj.DBOpen();
DBobj.SQLString="select * from members";
DBobj.PageSize=4;
DBobj.GetRS();
//********************************************************************
if (!DBobj.RSIsEmpty())
{
DBobj.RS.MoveFirst();
DBobj.RS.Move((DBobj.CurrentPageID-1)*DBobj.PageSize,1);
var j=0;
while (!DBobj.RS.eof && j<DBobj.PageSize)//
{
?Response.Write(DBobj.RS("name")+"<br>");
?j=j+1;
?DBobj.RS.MoveNext();
}
}
//*********************************************************************
Response.Write("<br>");
//*********************************************************************
Response.Write(DBobj.SetPager());?? //分頁(yè)導(dǎo)航條高度為25
//*********************************************************************
Response.Write(CutString("啊撒123嬌散件 aaaa","#",8));
var Uobj=new UserLogin();
Uobj.UnameField="uname";
Uobj.PwdField="upwd";
Uobj.LevelField="ulevel";
Uobj.UserTableName="uadmi";
Uobj.uname="sadmin";
Uobj.pwd="sadmin";
Uobj.OKURL="";
Uobj.ErrorURL="2.htm";
Uobj.SessionOfName="aaa";
DBobj.CloseRS();
DBobj.DBClose();
DBobj=null;
Uobj.CheckLogin();
Response.Write(Session(Uobj.SessionOfName));
%>
具體效果把上面的代碼存成2個(gè)asp文件測(cè)試就知道了,不多說(shuō)了。
轉(zhuǎn)載于:https://www.cnblogs.com/zxub/archive/2005/06/13/173593.html
總結(jié)
以上是生活随笔為你收集整理的基于javascript的asp数据库操作类,含分页、字符串截取、用户登陆验证[原创]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 申请多张信用卡后总被拒 原来是银行对你不
- 下一篇: 建行喜马拉雅fm龙卡下卡快不快?审核时效