ASP運算元據庫

2021-05-25 12:52:33 字數 3897 閱讀 7696

adodb.connection 連線資料庫

先註冊乙個conn物件 set conn = server.createobject("adodb.connection")  //用server物件的createobject方法

然後再用connection的open方法連線資料庫

conn.execute("insert into tablename(1,2,)values(1,2)")

conn.close 關閉物件  insert 插入一條資料 update修改資料 delete刪除 select 查詢

adodb.recordset 返回乙個記錄集

先也是註冊物件 set rs = server.createobject("adodb.recordset") 這個rs是可以自己定義的 不一定一定要用rs 或者conn    因為這些是com元件(也就是用deiphl c++寫的dll,一些asp本身不能實現的功能 ) 不是asp的內建物件 ,所以要註冊物件   

然後也是用open方法開啟記錄集

rs.open "select * from tablename",conn,1,3   rs.open sql語句,conn物件,1,3 (1,3引數一會講)sql語句 一般是一條查詢語句  conn物件就是剛才上面connection開啟的資料庫物件

1 開啟資料庫的游標型別 

3 這個引數這裡 如果改為1的話 就不能對庫進行操作,不能更新和刪除(不能使用rs.addnew,rs.update,rs.delete)

改為2 以獨佔的形式開啟(當有乙個使用者在修改庫的時候,就會鎖定庫,保持資料的一致性)

3 可以對庫進去任何操作,包括刪除 修改 更新 新增

這裡一般我會用兩種 在列表頁的時候 因為不用操作庫,唯讀查詢就行了 rs.open sql,conn,1,1  

在新增修改資料的時候 用rs.open sql,conn,1,3  

rs.bof  是否為第一條資料 是 返回 true 反之 返回false 

rs.fof 是否為最後  一條資料 是 返回 true 反之 返回false

那就可以用這個來判斷資料庫裡有沒有記錄  if rs.eof and rs.bof then 就是說當前游標 不在第一條也不在最後一條 就說明沒有記錄 

if rs.eof then 這樣說明有記錄 那麼我們就用個迴圈把資料輸出  rs和conn一樣理解,是變數

set rs = server.createobject("adodb.recordset")

rs.open sql,conn,1,1

if not rs.eof then '如果不在記錄集的未端,說明有記錄

do while not rs.eof  '直到該記錄集的最後 跳出迴圈

response.write rs("欄位名")

rs.movenext 游標向下移動

loop

end if

rs.close //登出物件

set rs = nothing //釋放資源

因為asp是弱型別的 定量物件時不用定義型別

如果是c# 就是

int i;  string str; asp 就 dim i,str 還有asp定義變數不能賦初始值

c#  int i = 1;

asp   dim i  i = 1

下面講一下指標移動(就上面的游標,應該是指標,游標是c語言裡面的,asp沒有)

rs.movenext 向下移動一條

rs.moveprevious 向上移動一條

rs.movefirst 移動到第一條

rs.movelast 移動到最後一條

rs.absoluteposition = n 移動記錄指標到第n行

常用的就rs.movenext

講asp分頁的幾個方法屬性

rs.pagesize = n 每頁顯示n條資料

rs.absolutepage = n 將記錄指標移動第n頁的第一條資料

rs.recordcount 記錄集的總記錄數

rs.pagecount 記錄集的總頁數

set rs = server.createobject("adodb.recordset")

rs.open sql,conn,1,1

pagesize = 20

rs.pagesize = pagesize '每頁顯示20條

curpage = request.querystring("page") '得到當前頁數

if curpage = "" or isnumeric(curpage) or (curpage-rs.pagecount) > 0 then

'如果curpage等於空 或者 不是數值型別 或者 curpage大於總數

curpage = 1

'那麼curpage等於1

end if

rs.absolutepage = curpage '設定當前記錄集頁面

i = 1

if not rs.eof then 如果不在記錄集的未端,說明有記錄

do while not rs.eof and i < pagesize   如果已經是資料集的最後一條記錄 或者 i已經大於 rs.pagesize 就退出

response.write rs("欄位名")

i = i + 1 每迴圈一次 i + 1

rs.movenext 指標向下移動

loop

end if

%>

<%if curpage=1 then%>

首頁<%else%>

首頁<%end if%>

<%end if%>

<%end if%>

<%if rs.pagecount

尾頁<%else%>

">尾頁

<%end if%>

<%

rs.close //登出物件

set rs = nothing //釋放資源

%>

rs.addnew  這是新增一條記錄 開啟的資料集必須為1,3

set rs = server.createobject("adodb.recordset")

sql = "select * from tealename"

rs.open sql,conn,1,3

rs.addnew() 新增記錄到記錄集未端

rs("欄位名1") = 值1

rs("欄位名2") = 值2

rs("欄位名3") = 值3

rs.update() 將修改更新到資料庫內

rs.close

set rs = nothing

%>

rs.update 更新資料

set rs = server.createobject("adodb.recordset")

sql = "select * from tealename where id = 1"  '修改id為1的資料

rs.open sql,conn,1,3

rs("欲更新的欄位名1") = 更新後的值1

rs.update() 將修改更新到資料庫內

rs.close

set rs = nothing

rs.delete 刪除

set rs = server.createobject("adodb.recordset")

sql = "select * from tealename where id = 1"  '刪除id為1的資料

rs.open sql,conn,1,3

rs.delete() '刪除當前記錄,但指標不會向下移動,所有如果要刪除多條資料的時候 要用到迴圈

rs.close

set rs = nothing

ASP運算元據庫

adodb.connection 連線資料庫 先註冊乙個conn物件 set conn server.createobject adodb.connection 用server物件的createobject方法 然後再用connection的open方法連線資料庫 conn.execute inse...

ASP運算元據庫的函式庫

名稱 usedb.asp 功能 資料庫操作函式庫 信箱 inteye 163.com 主頁 blog 函式 opendb dbtype,dbuser,dbpass,dbname,dbserver,dbpath 功能 開啟資料庫連線 引數 dbtype 資料庫型別 mdb access資料庫 sqls...

運算元據庫

python importmysqldb defmydbtest conn mysqldb.connect host localhost user root passwd sa db b4img charset utf8 cursor conn.cursor sql select from imag...