网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > ASP精品代码 > 正文

如何做一个高效的ASP数据库操作程序

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

  <!--

  蛙蛙推荐:如何做一个高效的ASP数据库操作程序

  一般情况下我们做的ASP数据库程序都是ADO+ACCESS,并且都是使用一些查询字符串加记录集来操作数据库,最多也只使用了connection和recordset两个对象以及它们的几个常用的属性和方法,其实ADO的使用远不仅这些,我们还有command对象和Parameters对象没有用呢,而这两个对象用好了会提高你整个ASP程序的性能.

  我这里写了一个歌词管理程序,用的是sqlserver数据库和存储过程实现的,(这里没有用参数化查询,也正是为了演示ado对sqlserver和存储过程的用法).

  希望大家能从我的示例代码中学到新的东西,嘿嘿.

  注意:我把示例代码里面的asp边界符(就是尖括号加上一个百分号的那个标识)替换成了全角中文的尖括号,因为很多论坛会过滤这个符号,再你复制后记着把它替换成英文半角的.

  -->

  <!-- 数据库脚本 -->

  <!-- 先在sqlserver里新建个数据库song然后在查询分析器里选择这个数据库,赋值下面的t-sql代码执行批查询,最后把这个页放在虚拟目录下,并把其中的数据库连接字符串修改成适合你的数据库配置的字符串,运行本页就可以了 -->

  <!--

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[check_song]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

  drop procedure [dbo].[check_song]

  GO

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[insert_song]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

  drop procedure [dbo].[insert_song]

  GO

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_song_list]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

  drop procedure [dbo].[p_song_list]

  GO

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_wawa_song]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

  drop procedure [dbo].[p_wawa_song]

  GO

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[wawa_song]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

  drop table [dbo].[wawa_song]

  GO

  CREATE TABLE [dbo].[wawa_song] (

  [song_id] [int] IDENTITY (1, 1) NOT NULL ,

  [song_name] [char] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,

  [song_content] [varchar] (4000) COLLATE Chinese_PRC_CI_AS NOT NULL ,

  [song_author] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,

  [author_id] [int] NULL

  ) ON [PRIMARY]

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  SET ANSI_NULLS ON

  GO

  /*

  过程check_song,通过@song_name变量来查询数据表中是否有重复的记录,如果有则设定@state这个输入参数的值为1,该值直接影响到addnew过程的运行

  */

  create proc check_song

  @song_name char(40),

  @state int output

  as

  begin

  if exists(select song_name from wawa_song

  where song_name=@song_name)

  set @state = 1

  else

  set @state = 0

  end

  GO

  SET QUOTED_IDENTIFIER OFF

  GO

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  SET ANSI_NULLS ON

  GO

  /*

  过程insert_song

  */

  CREATE proc insert_song

  @song_name char(40),

  @song_content varchar(4000),

  @song_author char(20)

  as

  begin

  declare @state int

  exec check_song @song_name,@state output

  if @state = 0

  begin

  begin tran

  insert into wawa_song(song_name,song_content,song_author) values (@song_name,@song_content,@song_author)

  commit tran

  raiserror('%s添加成功!',16,1,@song_name)

  end

  else

  begin

  raiserror ('用户名%s已存在!',16,1,@song_name)

  return

  end

  end

  GO

  SET QUOTED_IDENTIFIER OFF

  GO

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER OFF

  GO

  SET ANSI_NULLS OFF

  GO

  CREATE PROCEDURE [p_song] AS

  select * from wawa_song order by song_id desc

  GO

  SET QUOTED_IDENTIFIER OFF

  GO

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER OFF

  GO

  SET ANSI_NULLS OFF

  GO

  create proc p_wawa_song

  @id int

  as

  select song_id,song_name,song_author,song_content from wawa_song where song_id=@id

  GO

  SET QUOTED_IDENTIFIER OFF

  GO

  SET ANSI_NULLS ON

  GO

  -->

  <!-- /数据库脚本 -->

  <!-- 数据库连接 -->

  《%

  Dim conn,strconn

  Set conn = Server.CreateObject("ADODB.Connection")

  '如果你的数据库的连接字符串和下面一句不符合,可以修改下句代码来适合你的数据库配置

  strconn="Driver={sql server};server=192.168.0.110;database=song1;uid=sa;pwd=sa;"

  conn.Open strconn

  %》

  <!-- /数据库连接 -->

  <!-- 获取本页地址 -->

  《%

  Dim fileName,postion

  fileName = Request.ServerVariables("script_name")

  postion = InstrRev(fileName,"/")+1

  fileName = Mid(fileName,postion)

  %》

  <!-- /获取本页地址 -->

  <!-- 让数据库的数据按原格式输出的函数 -->

  《%

  Function wawaHTML(result)

  if not isNull(result) then

  result = Server.HtmlEncode(result)

  result = replace(result,vbcrlf,"<br>")

  result = replace(result," "," ")

  result = replace(result,chr(9),"    ") 'Tab键

  wawaHTML=result

  else

  wawaNHTML= "没有内容"

  end if

  end Function

  %》

  <!-- /让数据库的数据按原格式输出的函数 -->

  <!-- 读取数据库所有歌曲并显示出来 -->

  《%

  Dim rs_wawa

  set rs_wawa=server.createobject("adodb.recordset")

  rs_wawa.open "p_song",conn,1,1,4

  dim pages,allpages,page

  pages=10

  rs_wawa.pageSize=pages

  allPages = rs_wawa.pageCount

  page = clng(Request("page"))

  if isempty(page) or page<0 or page=0 then page=1

  if page >rs_wawa.pagecount then page=rs_wawa.pagecount

  if not(rs_wawa.bof and rs_wawa.eof) then

  rs_wawa.AbsolutePage = page

  end if

  %》

  <!--/ 读取数据库所有歌曲并显示出来 -->

  <!-- 根据参数从数据库里读取一个歌曲的记录 -->

  《%

  if request("action")="view" then

  if request("id")<>"" then

  dim id

  id=clng(Trim(Request.QueryString("id")))

  set cm = Server.CreateObject("ADODB.Command")

  Set cm.ActiveConnection = conn

  cm.CommandText = "p_wawa_song"

  cm.CommandType = 4

  set p = cm.Parameters

  p.Append cm.CreateParameter("@id",3,1,,id)

  dim rs_song

  set rs_song=server.createobject("adodb.recordset")

  rs_song.open cm,,1,1

  else

  response.Write("没有传递参数")

  response.End()

  end if

  end if

  %》

  <!-- /根据参数从数据库里读取一个歌曲的记录 -->

  <!-- 把表单数据添加到数据库 -->

  《%

  if not isempty(request.Form("submit")) then

  call addnew

  end if

  sub addnew

  on error resume next

  song_author=request("song_author")

  song_content=request("song_content")

  song_name=request("song_name")

  set cm = Server.CreateObject("ADODB.Command")

  Set cm.ActiveConnection = conn

  cm.CommandText = "insert_song"

  cm.CommandType = 4

  set p = cm.Parameters

  p.Append cm.CreateParameter("@song_name",130,1,60,song_name)

  p.append cm.CreateParameter("@song_content",202,1,4000,song_content)

  p.append cm.CreateParameter("@song_author",130,1,20,song_author)

  cm.Execute

  if err.number<>0 then

  response.write err.description

  else

  response.write "ddd"

  response.end

  end if

  set cm = nothing

  response.Redirect fileName

  end sub

  %》

  <!-- /把表单数据添加到数据库 -->

  <table width="90%" border="0" align="center">

  <tr>

  <td valign="top">

  <!-- 添加歌曲用户接口 -->

  《%if request("action")="add" then%》

  <table width="500" border="0" align="center" cellspacing="1" bgcolor="#0000FF">

  <form action="" method="post">

  <tr bgcolor="#FFFFFF">

  <td colspan="2"><div align="center">添加歌词</div></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td width="50%" align="right">歌曲作者:</td>

  <td width="50%"> <input name="song_author" type="text" id="song_author"></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td width="50%" align="right">歌曲名称:</td>

  <td width="50%"><input name="song_name" type="text" id="song_name"></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td align="right">歌曲内容:</td>

  <td><textarea name="song_content" cols="50" rows="5" id="song_content"></textarea></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td align="right"><input type="submit" name="Submit" value="提交"></td>

  <td><input type="reset" name="Submit2" value="重置"></td>

  </tr>

  </form>

  《%end if%》

  <!-- /添加歌曲用户接口 -->

  <!-- 显示歌曲用户接口 -->

  《%if request("action")="view" then%》

  <table width="500" border="0" align="center" cellspacing="1" bgcolor="#0000FF">

  <tr bgcolor="#FFFFFF">

  <td colspan="2"><div align="center">查看歌词</div></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td width="50%" align="right">歌曲作者:</td>

  <td width="50%">《%=rs_song("song_author")%》</td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td width="50%" align="right">歌曲名称:</td>

  <td width="50%">《%=rs_song("song_name")%》</td>

  </tr>

  <tr align="left" bgcolor="#FFFFFF">

  <td colspan="2">《%=wawaHTML(cstr(rs_song("song_content")))%》</td>

  </tr>

  《%end if%》

  <!-- /显示歌曲用户接口 -->

  <!-- /欢迎界面用户接口 -->

  《%if request("action")="hello" or request("action")="" then%》

  <table width="500" border="0" align="center" cellspacing="1" bgcolor="#0000FF">

  <tr bgcolor="#FFFFFF">

  <td colspan="2"><div align="center">欢迎使用蛙蛙歌词管理系统</div></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td colspan="2" align="left"><p>残荷听雨,梨花飞雪,<br>

  落英缤纷时节。<br>

  晓来谁染枫林醉?点点都是离人泪.<br>

  活着,就是快乐!<br>

  自信,就是美丽!<br>

  有人爱,就是幸福。 <br>

  <br>

  <a href="/uploadfile/201007/22/33234657483.gif" border="0" title="欢迎访问我的蛙蛙池塘哦,呱呱"></a></p>

  </td>

  </tr>

  《%end if%》

  <!-- /欢迎界面用户接口 -->

  </td>

  <td valign="top">

  <center>

  <A HREF="《%=fileName%》">首页</A>  <A HREF="《%=fileName%》?action=add">添加歌曲</A>

  <table width="300" border="0" align="center" cellspacing="1" bgcolor="#0000FF">

  《%

  if not(rs_wawa.bof and rs_wawa.eof) then

  While Not rs_wawa.EOF and pages>0

  %》

  <tr bgcolor="#FFFFFF">

  <td><A HREF="《%=fileName%》?action=view&id=《%=rs_wawa(0)%》">《%=rs_wawa(1)%》</A></td>

  </tr>

  《%

  rs_wawa.MoveNext

  pages=pages-1

  Wend

  rs_wawa.close:set rs_wawa=nothing

  else

  %》

  <tr bgcolor="#FFFFFF">

  <td>还没有添加歌曲呢</td>

  </tr>

  《%

  end if

  conn.close:Set conn = Nothing

  %》

  《%if page<>1 then%》

  <a href="《%=filename%》?page=1">首页<a/>    <a href="《%=filename%》?action=hello&?page=《%=(page-1)%》">上一页</a>

  《%end if%》

  《%if page<>allpages then %》

  <a href="《%=filename%》?page=《%=(page+1)%》">下一页</a>   <a href="《%=filename%》?page=《%=(allpages)%》">末页</a>

  《% End If %》

  当前第《%=page%》几页   共《%=allpages%》页

  </center>

  </td>

  </tr>

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师