首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网页制作-> CSS教程
如何做一个高效的ASP数据库操作程序-ASP教程,数据库相关
作者:网友供稿 点击:27
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
<!--
蛙蛙推荐:如何做一个高效的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, nisprocedure) = 1)
drop procedure [dbo].[check_song]
go

if exists (select * from dbo.sysobjects where id = object_id(n[dbo].[insert_song]) and objectproperty(id, nisprocedure) = 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, nisprocedure) = 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, nisprocedure) = 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, nisusertable) = 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," ","&nbsp;")
result = replace(result,chr(9),"&nbsp;&nbsp;&nbsp;&nbsp;") 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>&nbsp;&nbsp;<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/> &nbsp;&nbsp; <a href="《%=filename%》?action=hello&?page=《%=(page-1)%》">上一页</a>&nbsp;&nbsp;
《%end if%》
《%if page<>allpages then %》
<a href="《%=filename%》?page=《%=(page+1)%》">下一页</a>&nbsp;&nbsp; <a href="《%=filename%》?page=《%=(allpages)%》">末页</a>&nbsp;&nbsp;
《% end if %》
当前第《%=page%》几页&nbsp;&nbsp; 共《%=allpages%》页
</center>
</td>
</tr>
</table>


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·ASP.NET with C#使用md5,sha1加密初探-.NET教程,Asp.Net开发
·最简单的java分页算法-JSP教程,Java技巧及代码
·创建ASP.NET WEB自定义控件——例程1-.NET教程,Asp.Net开发
·探究客户端浏览器分辨率的自适应问题(1)-.NET教程,评论及其它
·基于.net开发平台项目案例集锦-.NET教程,Asp.Net开发
·编程初学者的良言警句-ASP教程,脚本编码
·Java中for循环中执行顺序问题及break, continue用法-JSP教程,Java技巧及代码
·Java数据库编程中的几个常用技巧-JSP教程,数据库相关
·ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件-.NET教程,评论及其它
·如何查找、删除表中重复的记录-数据库专栏,SQL Server
最新文章
·google adwords投放报告(二)_网赚技巧
·专访帝国软件的创造者:仍然在路上的80后_站长访谈
·王微:视频网站还要烧钱3年_站长访谈
·个人经验:做站的几大忌讳_站长心得
·大鸟的草根站长seo技巧(一)_站长心得
·flash与后台编码兼容性问题的解决方案_flash教程
·怎样才能把自己的网站做好?一定要知道的定律_站长心得
·论网站设计的十大要点2_站长心得
·网页设计配色应用实例剖析——橙色系2_站长心得
·被k的网站如何改进重新申请通过_google推广
相关主题
  • 如何做一个赚钱的英文站点?_网赚技巧
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭