ASP存取資料庫


  1. 網際網路資料庫的概述
  2. 認識 Web 伺服器 (Server)
  3. 存取網站資料庫的流程
  4. Script 語言與ASP的介紹
  5. HTML 與 ASP 的異同
  6. SQL (Structure Query Language)指令
  7. 認識 ODBC (Open Database Connectivity)
  8. ActiveX Data Objects 及其物件介紹
  9. 應用實例介紹
  10. 線上點名系統
  11. 線上考試系統
  12. 校友線上資訊查循及登錄

VB&ASP 資料庫設計

  1. VB基本語法認識
  2. 解悉資料庫組織架構
  3. 資料庫物件的應用
  4. SQL語言介紹
  5. ADO物件教學
  6. Data Report 應用
  7. IIS的安裝
  8. ASP 物件認識
  9. 訪客留言版製作
  10. 線上投票&考試製作

ASP存取資料庫


連結】【瀏覽】【修改】【查詢】【新增 】【 刪除】【join

【VBScript語法速查】【SQL指令速查


連結資料庫


  1. 建立asp程式欲放置的資料夾
  2. 將此資料夾設定成『共用』-『web共用』(例如 teach),並具有執行的權限。則往後連結時打入:http://本機 ip/teach/asp檔(含副檔名.asp) 或 http://localhost/teach/asp檔(含副檔名.asp)
  3. 規劃製作資料庫:欄位名稱、型態、長度、是否允許零長度... 假設此資料庫名稱為school.mdb,內含二個table,分別為 student:(id,自動編號、name,C,10、s_year,C,2、s_class,C,2、s_sex,C,2) score:(id,自動編號、name,C,10、obj1,N,長整數、obj2,N,長整數)
  4. 設定待連結的資料庫。有兩種方法您可以使用:
    • DSN(Data Source Name):建立一個「系統資料來源名稱」。 控制台-系統管理工具-資料來源(ODBC)-系統資料來源名稱-新增-選擇適當的驅動程式(按『完成』)-輸入資料來源名稱(類似一個別名)-『選取(S)』欲連結資料庫-按『確定』 假設此資料來源名稱為『school』
    • DSN-less:於ASP程式當中直接設定。 ※注意:新建一個「系統資料來源名稱」,而非「使用者資料來源名稱」,兩者差別之處為: 「系統資料來源名稱」:表示所有的使用者都可以使用這個DSN(Data Source Name)。 「使用者資料來源」:只在區域電腦中,並且只有目前使用者可以使用這個DSN。

瀏覽資料庫


範例:ADO物件透過ODBC存取Access資料庫(範例:brow.asp) 若要透過ODBC存取Access資料庫,首先直接於ASP程式碼中指定所要連結的資料庫,使用「Server.CreateObject("ADODB.Connection")」建立連線的物件後,於Driver設定為Access ODBC驅動程式名稱。使用「Open」直接連結到待存取查詢資料庫。 ASP程式碼如下:

  1. 建立連線物件
    Set db = Server.CreateObject("ADODB.Connection") 
    open方法一、DBQ直接設定Access資料庫的真實路徑檔案名稱
    db.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=e:aspteachschool.mdb" 
    open方法二、使用Server.MapPath("資料庫檔案名稱") 以取得資料庫的真實路徑檔案如下(asp程式與資料庫放於同一資料夾下):
    db.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("school.mdb") 
  2. open方法三、使用DSN(建議利用此方式)
    db.Open "school" 
  3. 接著設定待執行的SQL指令為「select * from student」以查詢所有的資料,將查詢的資料放置於所定義rs的Recordset當中,ASP程式碼如下: 語法: rs.Open SQL指令, Conn, 1, 1 ‘第二個參數1,表讀取。用於瀏覽時 rs.Open SQL指令, Conn, 1, 3 ‘第二個參數3,表是可以新增、修改、或刪除 程式碼:
    Set rs = Server.CreateObject("ADODB.Recordset") 
    rs.Open "student",db,1,1
    Set rs = Server.CreateObject("ADODB.Recordset") 
    SqlStr = "select * from student order by s_year"
    rs.Open SqlStr,db,1,1
    說明: rs.open 後面接table名稱,並用雙引號括住。 select * from student 代表由student table中選取資料。*代表全部欄位皆選取。by s_year 表由年級排序。 若只想選取選取姓名(name)、年級(s_year),則:"select name,s_year from student" order by 欄位:由小到大排列。若由大到小則:order by 欄位 DESC
  4. 顯示執行結果: 程式碼片段:
    <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("name") %></TD>
    <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("s_year") %></TD>
    <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("s_class") %></TD>
    <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("s_sex") %></TD>
    rs.MoveNext
  5. 關閉RecordSet和資料庫連結: 程式碼:
    rs.Close
    db.close (或 set db = nothing)
    說明: 其中由rs("欄位名稱") ,讀取指定欄位的資料。 rs.MoveNext,將指標移到下一筆。 資料庫中,幾個常用的方法與屬性如下:
    • 取得欄位資訊的方法: rs.Fields.Count:欄位總數。 rs(i).Name:第i(指標)個欄位名稱,i由0算起到rs.Fields.Count-1。
    • 讀取欄位的資料,可以使用以下兩個方法: rs(i):讀取第i(指標)個欄位的資料,i由0算起到rs.Fields.Count-1。 rs(“欄位名稱”):讀取指定欄位的資料。
    • 與HTML碼配合,以顯示執行的結果之相關RecordSet屬性和方法:
      • rs.RecordCount:資料總筆數。
      • rs.EOF:是(True)否(False)已指到最末筆。
      • rs.MoveNext:將指標移到下一筆。
      • rs.MovePrev:將指標移到上一筆。
      • rs.MoveFirst:將指標移到第一筆。
      • rs.MoveLast:將指標移到最末筆。

修改資料庫


資料修改:Update(範例:update.htm->update1.asp) Update陳述式,用來更新資料表中欄位的資料值,可以使用WHERE設定特定的條件運算式,符合條件運算式的記錄才會被更新。 語法如下:(在同一行)

UPDATE 資料表
SET 欄位新值
WHERE 條件運算式

範例:

sqlstr = "Update score Set obj1 = 22 where name = '陳世銘'" 
Set a = db.Execute(sqlstr)

查詢資料庫


查詢資料:利用select指令(範例:select.htm->select1.asp) 語法如下:(在同一行)

SELECT 欄位名稱#1, 欄位名稱#2, ...
FROM 資料表名稱#1, 資料表名稱#2, ...
WHERE 條件式
ORDER BY 欄位名稱#1, 欄位名稱#2, ...

SELECT:所接的欄位名稱為待查詢的欄位,各欄位名稱之間以逗點分隔之。 FROM:所接的資料表名稱為待查詢的資料庫資料表(table)名稱,各資料表名稱之間以逗點分隔之。 WHERE:所接的條件式為設定查詢條件式。 ORDER BY:所接的欄位名稱為排序的欄位,將查詢的資料加予排序。指定多個欄位時,先以欄位名稱#1排序,若資料相同再依欄位名稱#2排序,...,各欄位名稱之間以逗點分隔之。 範例:

Set rs = Server.CreateObject("ADODB.Recordset") 
sqlstr = "Select * from student where name='陳世銘'"
rs.Open SqlStr,db,1,1

新增資料庫


新增資料:利用addnew指令(範例:addnew.htm->addnew1.asp) 若要新增資料,首先於開啟資料庫後,使用AddNew方法,設定各欄位的資料後,最後使用Update方法, 語法如下:

RS.AddNew
RS(“欄名1”) = 資料1
RS(“欄名2”) = 資料2
RS.Update

刪除資料庫


刪除資料:利用delete指令(範例:delete.htm->delete1.asp) 刪除資料,首先使用SELECT的SQL指令尋找待刪除的資料,最後使用Update方法 語法如下:

rs.Delete 

table的Join


二個table的連結:利用join指令(範例:join.asp) 語法如下:(在同一行)

select 欄位...
from table1 inner join table2
on table1.欄位1 比較運算子 table2.欄位1 and
on table1.欄位2 比較運算子 table2.欄位2 or
on table1.欄位3 比較運算子 table2.欄位3

範例:

Set rs = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT score.name,student.s_year,student.s_class,score.obj1,score.obj2 FROM score inner join student on student.name=score.name order by s_year"
rs.Open SqlStr,db,1,1,1

全站熱搜
創作者介紹
創作者 hzlin77 的頭像
hzlin77

北門農工電腦教室

hzlin77 發表在 痞客邦 留言(0) 人氣()