asp+access教案文档格式.docx
- 文档编号:16339539
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:18
- 大小:31.54KB
asp+access教案文档格式.docx
《asp+access教案文档格式.docx》由会员分享,可在线阅读,更多相关《asp+access教案文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
2..3.3打开数据库
有了上面两步准备工作后就可以使用Open方法打开指定的数据库了。
ad.Open"
driver={MicrosoftAccessDriver(*.mdb)};
dbq="
&
Pathyy就可打开绝对路径pathyy下的Access数据库book1.mdb,此后其内的表就可被程序调用。
3访问数据库
完成了数据库的打开,我们可以对数据内的表进行操作,下面就几种常用情况进行阐述。
在操作一个表的全部记录或表的部分记录(一般“部分记录”是执行了条件筛选命令产生的结果)时,由于在一个特定的时刻只能操作其中的某一个当前记录,我们可以用Server.CreateObject建立一个指针对象来指向将要操作的记录。
Setrs=Server.CreateObject("
ADODB.Recordset"
)就可建立一个代表某表中的所有记录的指针对象rs,利用rs对象可实现逐条访问表中的记录等操作。
特别掌握常用数据库表的操作,下面列出部记常用对象的一些方法:
rs.movenext
将记录指针从当前的位置向下移一行
rs.moveprevious
将记录指针从当前的位置向上移一行
rs.movefirst
将记录指针移到数据表第一行
rs.movelast
将记录指针移到数据表最后一行
rs.absoluteposition=N
将记录指针移到数据表第N行
rs.absolutepage=N
将记录指针移到第N页的第一行
rs.pagesize=N
设置每页为N条记录
rs.pagecount
根据
pagesize
的设置返回总页数
rs.recordcount
返回记录总数
rs.bof
返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof
返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete
删除当前记录,但记录指针不会向下移动
rs.addnew
添加记录到数据表末端
rs.update
更新数据表记录
这些方法可与VF数据库的命令进行对比学习。
实质是一样的,只是书写和概念上有些差异。
3.1向数据库表简单地输入和输出数据
把数据从表中读出来很简单,如像一般计算机语言中的赋值操作一样。
存放到数据库中的数据可以是程序运行中的变量,也可以是用request从上级网页表单中传来的变量等,下面以后者为例,把某用户从表单中传来的姓名(namep)、编号(no)、年龄(agep)存放到数据库中。
<
%nam=Request.Form("
namep"
)//取得从表单传来的数据namep,存放到新变量nam中
no=Request.Form("
nop"
)//取得从表单传来的数据编号nop,存放到新变量no中
age=Request.Form("
agep"
)//取得从表单传来的数据agep,存放到新变量age中
mysql="
SELECT*FROMaddress"
//设置了一个表示查询address表的变量mysql
rs.openmysql,ad,1,3//执行查询,且以可修改的方式打开临时表address.
Temp1=rs(“name)//可把当前记录的姓名name字段值读入到变量temp1中
rs.addnew//在表的最后增加一个新空记录
rs("
name"
)=name//下面三句实现把要增加的数据写入临时表中的新记录中
no"
)=no
age"
)=age
rs.update//把临时表中的改变数据返回更新到原表
address中
%>
3.2记录的查询
查询是很复杂的一件事,要有一定的SQL基础,目前有多种方法可以实现,方法有难有易,但各有所长,这里举两种比较常见的典型情况予以说明。
3.2.1查找唯一值
如本文所用数据库表中的编号就是一个唯一值字段,也就是在表中此字段的值不会出现重复值,此时如果要找到某个特定的编号的记录就比较容易,可直接在select语句中完成。
要在表中找到编号为”003”的记录,并把此记录的姓名,年龄取到变量中。
SELECT*FROMaddress"
"
whereno="
&
"
003"
rs.openmysql,ad,1,1//这儿是只读方式打开
xm=rs("
name"
)
nl=rs("
age"
由上可见,这种方法困难在查询语句的定义上,一般引号不好处理。
3.2.2查找多个满足条件的值
多个满足条件的值体现在要查询的关键字段的值有多个,一般要涉及到循环处理,这里介绍一种简单的循环处理办法while-wend语句。
要在表中找出年龄在20岁以上的所有记录且以年龄降序处理。
ORDERBYnameDESC"
//DESC可达到降序目的
rs.openmysql,ad,1,1
whilenotrs.eof
ifrs("
)>
20then
……//这里是所需要的处理命令,根据实际情况而定
endif
rs.movenext//指针移动到下一个记录上
wend
查询执行时,由于在查询中指定为降序排列,所以在临时表里rs指向的第一个记录是年龄最大的记录。
程序中的循环主要是用于逐条处理记录,由rs.movenext方法控制指针向下移动,以达到临时文件的尾部eof作为循环的结束条件。
循环内部的if判断语句用来筛选出满足条件的记录,省略号之处根据具体情况可写出功能各异的强大程序。
3.3记录数据维护
数据库中的数据维护是经常性的工作,如删除过时的记录、非法记录,修改错误记录等。
维护记录一般是有目的地操作某个特定的记录,所以往往要事先找到要处理的记录,就可能用到前面所述的记录查询。
要删除编号为"
002"
的记录且把编号为"
004"
记录的年龄增加1岁
rs.openmysql,ad,1,3//数据维护,可能要改变原有数据,所以要以可读写方式进行
)>
="
thenrs.Delete
thenrs("
)=rs("
)+1
rs.movenext
rs.update//由于改动的表的内容,故要更新原表
4数据库的关闭
数据库在网络上是共享的,在使用完数据库后要及时关闭它,否则可能造成数据丢失和破坏。
具体的操作是在访问完数据后马上用close方法关闭所用过的查询和数据库。
rs.close//关闭建立的rs指向的查询临时表
ad.close//关闭ad代表的系统与数据库的ADO连接
5结束语
ASP+Access不仅可以方便、高率地处理一般数据,也可处理图片、声音数据,由于篇幅有限,本文不予讨论。
一个实用的网站离不开动态网页,ASP+Access技术在目前的网站建设中应用很广泛且在不断地发展,新方法、新思路层出不穷,学习动态网页的过程是长期和艰难的,需要勇于动手实践,打破陈规,摸索出自己的一套方法。
应用举例
1动态地输出表格:
见例子—YY文件夹下的ASP1.HTM及其所有的链接文件。
本例可以自动地根据数据行的多少来输出表格,具有应用通用性
2数据库内的数据追加:
见例子---YY\lesson11下的samp10.HTM及其所有的链接文件.本例可实现把表单内的数据以记录形式追加到数据库中
3数据库内的数据维护:
见YY文件夹下的ASP2.HTM及其所有的链接文件。
此例子比较复杂。
应用了多项技术
4数据库内数据的删除:
见YY文件夹下的ASP2.HTM中的删除部分及其所有的链接文件。
5密码验证,密码维护:
见
ASP+ACCESS深入部分
在笼统地讲了一些概念和一些实例后,下面我们再次回头系统地学习一下ASP+ACCESS中的关键技术。
ASP与数据库应用(给初学者)
见最近许多网友询问一些关于数据库操作的基础问题,现把我以前写的一篇简单教程贴上来,好让一些初学者最快的入门:
一般来说,一个真正的、完整的站点是离不开数据库的,因为实际应用中,需要保存的数据很多,而且这些数据之间往往还有关联,利用数据库来管理这些数据,可以很方便的查询和更新。
数据库有很多种,如:
Fox数据库(.dbf)、Access数据库(.mdb)、Informix、Oracle和SQLServer等等,在这里,我将以MicrosoftAccess数据库为例来说明ASP是如何访问数据库的。
常用数据库语句
1.SELECT语句:
命令数据库引擎从数据库里返回信息,作为一组记录。
2.INSERTINTO语句:
添加一个或多个记录至一个表。
3.UPDATE语句:
创建更新查询来改变基于特定准则的指定表中的字段值。
4.DELETE语句:
创建一个删除查询把记录从FROM子句列出并符合WHERE子句的一个或更多的表中清除。
5.EXECUTE语句:
用于激活PROCEDURE(过程)
用ASP来做一个自己的通讯录练练手吧……
一、建立数据库:
用MicrosoftAccess建立一个名为data.mdb的空数据库,使用设计器创建一个新表。
输入以下几个字段:
字段名称 数据类型 说明 其它
ID 自动编号 数据标识 字段大小:
长整型 新值:
递增 索引:
有(无重复)
username 文本 姓名 缺省值
usermail 文本 E-mail 缺省值
view 数字 查看次数 字段大小:
长整型 默认值:
0 索引:
无
indate 时间日期 加入时间 缺省值
保存为data.mdb文件,为了便于说明,只是做了一个比较简单的库。
二、连接数据库
方法1:
Setconn=Server.CreateObject("
ADODB.Connection"
conn.Open"
Server.MapPath("
data.mdb"
方法2:
Provider=Microsoft.Jet.OLEDB.4.0;
DataSource="
注意:
一个页面中,只要连接一次就可以了,数据库使用完后要及时关闭连接。
conn.Close
Setconn=Nothing
三、添加新记录到数据库
username="
风云突变"
usermail="
fytb@"
indate=Now()
sql="
insertintodata(username,usermail,indata)values('
username&
'
'
usermail&
indate&
)"
conn.Execute(sql)
说明:
建立数据库连接;
通过表单获取姓名、E-mail字符串,Now()获取当前时间日期;
使用insertinto语句添加新记录;
conn.Execute来执行;
最后关闭。
四、选择数据库里的记录
1.选择所有记录的字段(按记录倒序排序):
sql="
select*fromdataorderbyIDdesc"
2.选择所有记录的姓名和E-mail字段(不排序):
selectusername,usermailfromdata"
3.选择姓名为“风云突变”的所有记录:
select*fromdatawhereusername='
4.选择使用163信箱的所有记录(按查看次数排序):
select*fromdatawhereusermaillike'
%"
@"
%'
orderbyviewdesc"
5.选择最新的10个记录:
selecttop10*fromdataorderbyIDdesc"
SQL语句已经知道了,不过在Web应用时,还得创建一个RecordSet对象得到记录集,才能把从数据库里取出的值应用在网页上,如果现在将所有的记录显示在网页上就这样:
select*fromdata"
Setrs=Server.CreateObject("
ADODB.RecordSet"
rs.Opensql,conn,1,1
DoWhileNotrs.Eof
Response.Write"
p>
姓名:
rs("
username"
)&
E-mail:
usermail"
查看:
view"
次 "
indate"
加入<
/p>
rs.MoveNext
Loop
rs.Close
Setrs=Nothing
创建rs得到记录集;
循环显示记录,rs.Eof表示记录末,rs.MoveNext表示移到下一个记录;
五、修改(更新)数据库记录
修改记录的E-mail:
ID=1
updatedatasetusermail='
whereID="
CInt(ID)
获取记录ID、新E-mail字符串;
使用update语句修改记录;
如果使记录的查看值加1,则:
updatedatasetview=view+1whereID="
六、删除数据库记录
删除某一条记录:
deletefromdatawhereID="
获取记录ID;
使用delete语句删除记录;
删除多条记录为:
deletefromdatawhereIDin(ID1,ID2,ID3)"
删除所有记录为:
deletefromdata"
总结:
以上教程是针对ASP的初学者而写的,只是介绍了一些基本的用法,在了解之后可以自己去试试,重要的在于能举一反三、综合运用。
更多的语法和参数请参阅MicrosoftAccess帮助中的MicrosoftJetSQL参考,由于本人才疏学浅、能力有限,如有表达不明确有地方还望指出,如果在应用当中遇到什么问题,也希望能够提出。
谢谢。
VBScript函数补习课
最近在看CSDN论坛的时候发现很多人还在问一些基本的ASP问题,而且有很大一部分是围绕着一些常用的VBSCRIPT函数。
在这里我想有必要点一下常用的几个函数。
我们不需要背出函数定义,但是我们需要知道这个函数,在必要的时候想到去用。
1、我怎么在一个日期上加上一个日期?
DateAdd(interval,number,date)
参数
interval必选项。
字符串表达式,表示要添加的时间间隔。
number必选项。
数值表达式,表示要添加的时间间隔的个数。
数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date必选项。
Variant或要添加interval的表示日期的文字。
interval参数可以有以下值:
yyyy
年
q
季度
m
月
y
一年的日数
d
日
w
一周的日数
ww
周
h
小时
n
分钟
s
秒
例子:
Date=DateAdd("
m"
1,"
31-01-2004"
)得出的结果是2004年2月31日?
呵呵,不是,是2004年2月29日,DateAdd()不会返回错误的日期
2、我怎么得到两个日期的时间间隔?
DateDiff(interval,date1,date2)
参数
字符串表达式表示用于计算date1和date2之间的时间间隔。
date1,date2必选项。
日期表达式。
用于计算的两个日期。
interval参数可以有以下值:
设置描述
DiffDate=DateDiff("
d"
Now,"
)
3、我怎么精确我的计算结果?
FormatNumber(expression[,NumDigitsAfterDecimal[,IncludeLeadingDigit[,UseParensForNegativeNumbers[,GroupDigits]]]])
Expression必选项。
要被格式化的表达式。
NumDigitsAfterDecimal可选项。
指示小数点右侧显示位数的数值。
默认值为-1,指示使用的是计算机的区域设置。
IncludeLeadingDigit可选项。
三态常数,指示是否显示小数值小数点前面的零。
UseParensForNegativeNumbers可选项。
三态常数,指示是否将负值置于括号中。
GroupDigits可选项。
三态常数,指示是否使用计算机区域设置中指定的数字分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- asp access 教案
![提示](https://static.bdocx.com/images/bang_tan.gif)