|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
<!-- 推荐:如何做一个高效的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> </table> <%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> </table> <%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="http://blog.csdn.net/onlytiancai/" target="_blank" ><img src="http://bbs.inhe.net/UploadFile/2004-2/2004212153455526.gif" border="0" title="欢迎访问我的蛙蛙池塘哦,呱呱"></a></p> </td> </tr> </table> <%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> </table> <% 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> & nbsp; <a href="<%=filename%>?page=<%=(allpages)%>">末页</a> & nbsp; <% End If %> 当前第<%=page%>几页 共<%=allpages%>页 </center> </td> </tr> </table> 返回类别: 教程 上一教程: IP限制函数 下一教程: 菜鸟学ADO实例教程之ADO 删除记录 您可以阅读与"如何做一个高效的ASP数据库操作程序"相关的教程: · ASP操作ACCESS数据库的程序 · 一个高效的数据分页的存储过程 · ASP安全写入数据库操作,正常读出并显示在不同的场合 · ASP中数据库操作中游标和加锁方法 · ASP,安全写入数据库操作,正常读出并显示在不同的场合 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |