电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> 数据库
如何做一个高效的ASP数据库操作程序-ASP教程,数据库相关
作者:网友供稿 点击:7
  西部数码-全国虚拟主机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.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·数据库开发个人总结(ADO.NET小结)-.NET教程,数据库应用
·怎么由DataSet将数据导入Excel?-.NET教程,数据库应用
·动态创建SQL Server数据库、表、存储过程-ASP教程,数据库相关
·Win32环境下动态链接库(DLL)编程原理-.NET教程,数据库应用
·封装的ADO.NET对数据库操作经典类-.NET教程,数据库应用
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·DataGrid使用心得(附大量代码)-ASP教程,数据库相关
·用代码创建DataGrid的多链接及checkbox事件响应-.NET教程,数据库应用
·ADO.NET 的最佳实践技巧-.NET教程,数据库应用
·转载: 用纯ASP代码实现图片上传并存入数据库中

最新文章
·根据数据表中数据,生成Powerpoint幻灯片-ASP教程,数据库相关
·DataGrid中的按钮反选事件与NamingContainer(命名容器)-downmoon-ASP教程,数据库相关
·使用用VB处理MYSQL数据库中二进制数据问题-.NET教程,VB.Net语言
·关于DataGridView中如何接收处于编辑状态下的当前信息-ASP教程,数据库相关
·在DataGridView中获得DataGridViewCheckBoxColumn的状态-ASP教程,数据库相关
·.net下访问Access数据库需要注意的问题-.NET教程,Asp.Net开发
·ActiveMQ4.1+Spring2.0的POJO JMS方案(上)-.NET教程,数据库应用
·ASP.NET 2.0中直接将Access数据库导入到Excel文件中-.NET教程,Asp.Net开发
·NET(C#)连接各类数据库-集锦-.NET教程,C#语言
·ASP.NET2.0连接SQL Server数据库详解-.NET教程,Asp.Net开发


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号