ASP网页编程之一个复杂的存储历程数据分页
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。存储历程|分页|数据1。数据库布局为:(在SQL傍边创建一个数据库后,间接在SQL布局查询器傍边实行以下SQL剧本)ifexists(select*fromdbo.sysobjectswhereid=object_id(N.)andOBJECTPROPERTY(id,NIsUserTable)=1)
droptable.
GO
CREATETABLE.(
IDENTITY(1,1)NOTNULL,
(50)COLLATEChinese_PRC_CI_ASNULL
)ON
GO
2。存储历程,(能够间接在数据库中新建存储历程,然后复制到数据库)
/*
存储历程分页
*/
CREATEPROCEDUREProc_Paging
(
@TBNameNVARCHAR(255),
@SQLnVARCHAR(4000),--不带排序语句的SQL语句
@Pageint,--页码
@RecsPerPageint,--每页包容的纪录数
@IDVARCHAR(255),--必要排序的不反复的ID号
@SortVARCHAR(255),--排序字段及划定规矩
@PageCountINTOUTPUT--总页数
)
AS
BEGIN
DECLARE@sql1nvarchar(4000)
SET@sql1=NSELECT@PageCount=COUNT(*)
+NFROM+@tbname
EXECsp_executesql@sql1,N@PageCountintOUTPUT,@PageCountOUTPUT
SET@PageCount=(@PageCount+@RecsPerPage-1)/@RecsPerPage
END
BEGIN
DECLARE@StrnVARCHAR(4000)
SET@Str=SELECTTOP+CAST(@RecsPerPageASVARCHAR(20))+*FROM(+@SQL+)TWHERET.+@ID+NOTIN(SELECTTOP+CAST((@RecsPerPage*(@Page-1))ASVARCHAR(20))++@ID+FROM(+@SQL+)T9ORDERBY+@Sort+)ORDERBY+@Sort
--PRINT@Str
--EXECsp_ExecuteSql@Str
--EXEC@Str
DECLARE@Str1NVARCHAR(400)
DECLARE@Str2NVARCHAR(400)
SET@Str1=CAST(@RecsPerPageASVARCHAR(20))
SET@Str2=CAST((@RecsPerPage*(@Page-1))ASVARCHAR(20))
EXEC(NSELECTTOP+@Str1+N*FROM(+@SQL+N)TWHERET.+@ID+NNOTIN(SELECTTOP+@Str2+N+@ID+NFROM(+@SQL+N)T9ORDERBY+@Sort+N)ORDERBY+@Sort)
END
GO
3。程序代码:(index.aspx.cs文件)
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Web;
usingSystem.Web.SessionState;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
namespaceJoyes.Test
{
///<summary>
//--------------------------------------------------
//--功效模块:存储历程分页
//--申明:很复杂
//--编写人:黄治强
//--编写工夫:2005.9.5
//---------------------------------------------------
///</summary>
publicclassindex:System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.DataGriddg;
protectedSystem.Web.UI.WebControls.LabellblPaging;
privatevoidPage_Load(objectsender,System.EventArgse)
{
//在此处安排用户代码以初始化页面
if(!Page.IsPostBack)
{
if(Request.QueryString["page"]==null)
{
//第一次开启页面时默许传送的页码参数为1
DataBindDg2(1);
}
else
{
DataBindDg2(int.Parse(Request.QueryString["page"].ToString()));
}
}
}
///<summary>
///使用存储历程掏出数据并邦定到DataGrid
///</summary>
///<paramname="intPage">必要传送的翻页页码的GET参数(int)</param>
privatevoidDataBindDg2(intintPage)
{
stringstr1="select*fromMobile";//不带排序语句的SQL语句
intintRecsPerPage=10;//每页包容的纪录数
stringstrID="MobileID";//必要排序的不反复的ID号
stringstrSort="MobileID";//排序字段及划定规矩
stringstrTBName="Mobile";//数据库傍边的要提取数据的表
SqlConnectioncon=newSqlConnection("uid=sa;pwd=123456;database=Test;");
SqlCommandcmd=newSqlCommand("Proc_Paging",con);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add(newSqlParameter("@SQL",SqlDbType.NVarChar,4000));
cmd.Parameters.Add(newSqlParameter("@Page",SqlDbType.Int));
cmd.Parameters.Add(newSqlParameter("@RecsPerPage",SqlDbType.Int));
cmd.Parameters.Add(newSqlParameter("@ID",SqlDbType.NVarChar,255));
 
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 那么,ASP.Net有哪些改进呢? 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了 不能只是将它停留在纸上谈兵的程度上。
页:
[1]