asp数据库链接。添加、编辑、删除

本文深入讲解了ADO(ActiveX Data Objects)中Recordset对象的属性与方法,包括PageCount、PageSize、RecordCount等,以及如何使用Open函数打开数据表或执行SQL指令。同时,文章还提供了数据库连接的多种方式,如DSN连接、路径连接等,并演示了数据写入、修改、删除及显示的具体代码实现。

Recordset属性与方法

        PageCount 属性: 决定 Recordset 对象包括多少“页”的数据。
        这里的“页”是数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。必须注意也并不是所有的数据提供者都支持此项属性。  
   PageSize 属性:显示 Recordset 对象每一页显示的记录数。
         PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。设定并建立一个页的大小,从而允许使用 AbsolutePage 属性移到其它逻辑页的第一条记录。PageSize 属性能随时被设定。
   RecordCount 属性:显示 Recordset 对象记录的总数。
   rs.RecordCount:游标中的数据记录总数。
   rs.MoveFirst: 指向第一条记录。
         rs.Move(6): 移动到第6条记录。
   rs.MoveLast: 指向最后一条记录。
   rs.MovePrev: 指向上一条记录。
   rs.MoveNext: 指向下一条记录。
   rs.GetRows: 将数据放入数组中

Recordset对象的Open函数:
  Rs.Open 数据表名称或SQL指令,Connection对象,Recordset类型,锁定类型
参数一:若指定成数据表名称,则打开整个数据表,若指定成Select指令,则所建立的Recordset对象是Select指令选取的数据记录的结果。
参数二:传入某一个已打开的数据库的Connection对象。
参数三:是Recordset类型,它含有下表的四种设置值:
Recordset类型的设置值 意义
AdOpenForwardOnly(=0) 只读,且当前数据记录只能向下移动
AdOpenStatic(=3) 只读,当前数据记录可自由移动
AdOpenKeyset(=1) 可读写,当前数据记录可自由移动
AdOpenDynamic(=2) 可读写,当前数据记录可自由移动
AdOpenKeyset和AdOpenDynamic的差别只表现在多人共用数据库时,若以AdOpenKeyset 模式打开数据表,则无法看到其他人新增的数据记录(除非重新启动),如果是以AdOpenDynamic模式打开数据库,则可以看到其他人新增的数据记 录。
参数四:是锁定类型,它同样含有四种设置值,见下表:
锁定类型的设置值 意义

adLockReadOnly(=1) 默认值,用来打开只读的数据记录
adLockPessimistic(=2) 悲观锁定
adLockOptimistic(=3) 乐观锁定
adLockBatchOptimistic(=4) 批次乐观锁定


数据库连接--------------------------------
MS Access数据库连接

用DSN连接并且没有用户名和密码:

 

< %
set  conn = Server.CreateObject( " ADODB.Connection " )
conn.open 
" YourDSNName "
%
>

 

 

用DSN连接并且有用户名和密码:

 

< %
set  conn = Server.CreateObject( " ADODB.Connection " )
conn.open 
" YourDSNName " , " username " , " password "
%
>

 

 

用实际的数据库绝对路径连接:

 

< %
Set  conn = Server.CreateObject( " ADODB.Connection " )
Strconn
= " DRIVER={Microsoft Access Driver (*.mdb)};  "
Strconn
= Strconn  &   " DBQ=e:\yanhang\database.mdb "  
conn.Open Strconn
%
>

 

 

用实际的数据库相对路径连接:

 

< %
Set  conn = Server.CreateObject( " ADODB.Connection " )
Strconn
= " DRIVER={Microsoft Access Driver (*.mdb)};  "
Strconn
= Strconn  &   " DBQ= "   &  Server.MapPath( " /database/yanhang.mdb " )
conn.Open Strconn
%
>

 

 


MS SQL Server数据库连接

用DSN连接:

 

< %
set  conn = Server.CreateObject( " ADODB.Connection " )
conn.open 
" DSN=MyDSN;UID=user;PWD=password;DATABASE=databasename "
%
>

 

 

不用DSN连接:

 

< %
Set  conn = Server.CreateObject( " ADODB.Connection " )
DSNtemp
= " DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=databasename "
conn.open DSNtemp
%
>

 

 

Oracle数据库连接:

 

< %
set  conn = server.createobject( " adodb.connection " )
conn.cursorlocation
= adUseClient
DSNTemp
= " Provider=MSDAORA.1;Password=xxxxx;User ID=yanhang;Data Source=xxx.world "
conn.open DSNtemp
%
>

 

 

数据写入……………………………………………………………………………………

 

ExpandedBlockStart.gif 代码
< ! -- #i nclude file = " common/conn.asp " -->
< %
set  rs = server.createobject( " adodb.recordset " )
sql
= " select * from online "
rs.open sql,conn,
3 , 2
rs.addnew
rs(
" name " ) = request( " name " )
rs(
" Tel " ) = request( " tel " )
rs(
" fax " ) = request( " fax " )
rs.update
rs.close
%
>

 

数据修改……………………………………………………………………………………

 

< %
if  request( " action " ) = " edit "   then   ' 判断是否修改

' 取得表单传递的数据
member_name = Trim (Request.Form( " member_name " ))
member_pwd
= Trim (Request.Form( " member_pwd " ))
question
= Trim (Request.Form( " question " ))



sql
= " select * from member where m_id= " & m_id
set  rs = server.createobject( " adodb.recordset " )
rs.open sql,conn,
1 , 3

rs(
" member_name " ) = member_name
rs(
" answer " ) = answer
rs(
" question " ) = question



rs.update
rs.close
set  rs = nothing

call  ok( " 资料修改成功! " , " edit_member.asp?m_id= " & m_id)

end   if
%
>

 

数据删除--数字字段……………………………………………………………………………………


< %
set  rs = server.createobject( " adodb.recordset " )
sql
= " select * from pay where ID =1 "
rs.open sql,conn,
1 , 3
if   not  rs.eof  and   not  rs.bof  then
rs.movefirst
do   while   not

rs.eof
rs.delete
rs.movenext
loop
end   if
rs.close
%
>

 

数据删除--字符串字段……………………………………………………………………………………


< %
set  rs = server.createobject( " adodb.recordset " )
sql
= " select * from pay where namer ='aaa' "
rs.open sql,conn,
1 , 3
if   not  rs.eof  and   not  rs.bof  then
rs.movefirst
do   while   not  rs.eof
rs.delete
rs.movenext
loop
end   if
rs.close
%
>

 

数据显示……………………………………………………………………………………

< %
Lei
= " 行业资讯 "   ' 设置显示信息类别
set  rs = server.CreateObject( " adodb.Recordset " )
sql
= " Select top 20 * from News where Lei <> ' " & Lei & " ' order by ID desc "
rs.open sql,conn,
1 , 1
if  rs.eof  then   ' 判断数据库内有无信息,防止读取错误
% >
暂无信息!
< %
else  
do   while   not  rs.eof
%
>
< % if   len (rs( " Title " ))  >   10   then  Response.write  left (rs( " Title " ), 10 ) & " ... "   else  Response.write rs( " Title " end   if % >
< %
' 循环显示数据
rc.movenext 
loop
rc.close 
set  rc = nothing
end   if % >

 

 

转载于:https://www.cnblogs.com/s7mmersupport/archive/2009/12/05/1617559.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值