asp與ACCESS數(shù)據(jù)庫的連接及基本操作 (
轉(zhuǎn)自)
①數(shù)據(jù)庫連接的建立:
Ⅰ、沒有密碼的數(shù)據(jù)
< %
set cn=server.createobject("adodb.connection") *建立connecton對象,定義了一個adodb數(shù)據(jù)庫連接組件
cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb") *打開數(shù)據(jù)庫
% >
Ⅱ、設有密碼的數(shù)據(jù)
< %
set cn=server.createobject("adodb.connection") *建立connecton對象,定義了一個adodb數(shù)據(jù)庫連接組件
cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb")&";jet oledb:database password="&pwd *打開數(shù)據(jù)庫
% >
②讀取記錄:
< %
set cn=server.createobject("adodb.connection")
cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb")
set rs=server.createobject("adodb.recordset") *建立connecton對象
sql="select * from table" *SQL語句
rs.open sql,cn,1,1 *執(zhí)行上面的SQL語句,其中參數(shù)1,1代表讀??;參數(shù)1,3代表修改記錄
if not rs.eof then *如果沒有到庫底
response.write"< tr >"
for i=0 to rs.fields.count-1 *循環(huán)讀取字段
resposne.write"< td >"&rs(i).name&"< /td >"
next
rs.movefirst *指針置于首記錄
while not rs.eof
response.write"< tr >"
for i=0 to rs.fields.count-1 *循環(huán)讀取記錄
resposne.write"< td >"&rs(i)&"< /td >"
next
rs.movenext *指針下移一個記錄
wend
end if
rs.close *關閉rs對像
set rs=nothing *釋放rs對像
cn.close *……
set cn=nothing *……
% >
③寫入記錄:
< %
set cn=server.createobject("adodb.connection")
cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb")
cn.execute"insert into table(fields1,fields2,fields3,…)values(*"&變量1&"*,*"&變量2&"*,*"&變量3&"*,…)"
cn.close *關閉cn對像
set cn=nothing *釋放cn對像
% >
④查詢記錄:
< %
set cn=server.createobject("adodb.connection")
cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb")
set rs=server.createobject("adodb.recordset")
sql="select * from table where fields1=*"&變量1&"* and fields2=*"&變量2&"*"
rs.open sql,cn,1,1
: *關閉對象
:
% >
⑤刪除記錄:
< %
set cn=server.createobject("adodb.connection")
cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb")
cn.execute"delect * from tablename where 條件"
% >
⑥更新記錄:
< %
set cn=server.createobject("adodb.connection")
cn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("test.mdb")
Ⅰ、
set rs=server.createobject("adodb.recordset")
sql="update tablename set fields1=數(shù)值1 and fields2=數(shù)值2"
rs.open sql,cn,1,3
Ⅱ、
cn.execute"update tablename set fields1=數(shù)值1,fields2=數(shù)值2 where fields=條件"
Ⅲ、
set rs=server.createobject("adodb.recordset")
sql="select * from tablename where fields=數(shù)值2"
rs.open sql,cn,1,3
rs("fields1")=新數(shù)值1
rs("fields2")=新數(shù)值2
rs.update
% >
以下是數(shù)據(jù)庫的常用技巧:
1、設置最多返回條數(shù):
有時候符合查詢的記錄可能有很多條,但我們并不需要查看全部記錄,只是想看前幾條記錄。
如:看前6條件記錄
select top 6 * from tablename order by id desc *desc為遞減,asc為遞增
另一種可以用百分比返回記錄數(shù):
select top 20 percent * from tablename order by id desc
意思是返回全部記錄的百分之二十的記錄。
2、數(shù)據(jù)庫中的指針操作指令:
rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行
rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行
rs.recordcount 返回記錄總數(shù) ,但必須rs.open sql,cn,3,3時才有效