假設資料庫檔案名叫data.mdb
裡面有2個表:
1.admin
2.news
假設admin是儲存使用者名和密碼,裡面有字段:UserName,PassWord.
假設我們要在判斷一個使用者名叫name,密碼是pass的人是否合法,也就是資料庫裡面是否有這個記錄,那麼要進行以下幾步:
1.建立一個連接配接對象,連接配接到資料庫;
2.建立一個記錄對象;
3.用記錄對象通過sql語句對表中的内容進行操作;
4.讀取sql語句的結果并處理;
5.關閉記錄對象,關閉連接配接對象.
第一步代碼:
Dim Conn,DateBase,connstr
DateBase = "/data/data.mdb"
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(DateBase)
On Error Resume Next
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Connstr '打開資料庫
If Err Then
Err.Clear
Set Conn = Nothing
Response.Write "資料庫連接配接出錯,請打開conn.asp檔案檢查連接配接字串。"
Response.End
End If
第二步代碼:
Dim Rs
Set Rs=Server.CreateObject("ADODB.RecordSet") '建立一個記錄對象
第三步代碼:
Dim Sql,UserName,PassWord
UserName="name" '給變量指派
PassWord="pass"
Sql="select * from Admin Where Name='" & UserName &"' and PassWord='" & PassWord &"'"
Rs.open Sql,Conn,3,3
當第三步完成後,對資料庫的查詢就成功了,然後就可以讀取sql的結果了:
A.查詢記錄:
If Rs.eof then
response.write "不存在此記錄或者輸入錯誤" '如果到了表的末尾都沒發現,當然就不存在此使用者,或者使用者名不對
else
response.write "存在,使用者名和密碼正确"
end if
B.添加記錄:(比如添加一個名叫pig密碼是dog的記錄)
1.進行第一步
2.進行第二步
3.連接配接到表
Sql="select * from Admin"
4.添加:
Rs.AddNew
Rs("UserName")="pig"
Rs("PassWord")="dog"
Rs.Update
C.修改記錄:(比如把名pig的密碼修改成cat)
3.連接配接到表中名UserName為pig的記錄:
UsersName="pig"
Sql="select * from Admin where UserName='" & UserName & "'"
Rs("PassWord")="cat"
D.删除記錄:(比如删除使用者名為pig的記錄)
3.删除表中名UserName為pig的記錄:
Sql="delete * from Admin where UserName='" & UserName & "'"
Rs.open Sql,Conn,3,3也可以直接寫成:Conn.execute(Sql)
總結:
重點在給Sql指派這一句,他決定你進行什麼操作,相關内容詳情請參考介紹sql語句的書籍,姜波有.
相關結果: 說明
Rs.RecordCount '查詢到的記錄個數
Rs.AddNew '添加新記錄
Rs.Update '更新,用于修改和添加以後
Rs.MoveNext '移動到下一條記錄
Rs.MoveLast '移動到上一條記錄
Rs.open Sql,Conn,1,3 是什麼意思
我們把 1,3 用A ,B來表示
Rs.open Sql,Conn,A,B
A:
ADOPENFORWARDONLY(=0) 隻讀,且目前資料記錄隻能向下移動
ADOPENKEYSET(=1) 隻讀,目前資料記錄可自由移動
ADOPENDYNAMIC(=2) 可讀寫,目前資料記錄可自由移動
ADOPENSTATIC(=3) 可讀寫,目前資料記錄可自由移動,可看到新增記錄
B:
ADLOCKREADONLY(=1) 預設鎖定類型,記錄集是隻讀的,不能修改記錄
ADLOCKPESSIMISTIC(=2) 悲觀鎖定,當修改記錄時,資料提供者将嘗試鎖定記錄以確定成功地編輯記錄。隻要編輯一開始,則立即鎖住記錄。
ADLOCKOPTIMISTIC(=3) 樂觀鎖定 ,直到用Update方法送出更新記錄時才鎖定記錄。
ADLOCKBATCHOPTIMISTIC(=4) 批量樂觀鎖定,允許修改多個記錄,隻有調用UpdateBatch方法後才鎖定記錄。
當不需要改動任何記錄時,應該使用隻讀的記錄集,這樣提供者不用做任何檢測。
對于一般的使用,樂觀的鎖定可能是最好的選擇,因為記錄隻被鎖定一小段時間,
資料在這段時間被更新。這減少了資源的使用。
最後别忘記關閉:
Rs.Close
Set Rs=nothing
Conn.close
Set Conn=nothing