Board logo

標題: [教學] (實戰專題) 資料庫聯絡簿 上篇 [打印本頁]

作者: 小誌    時間: 2010-5-26 00:21     標題: (實戰專題) 資料庫聯絡簿 上篇

在上一章中小誌已經說明:範例是以校園應用為主題,因此在名稱的定義上都稱為「聯絡簿」而不是「留言版」!希望大家不要誤會了呦!

本範例中將利用SQL語法過濾特定的家長留言意見,讓老師可以針對某位特定學生家長所發表的意見作出獨立的回應,同時,家長在發表個人意見時,若認為意見內容涉及敏感的話題或是意見內容涉及私人隱私,都可用『悄悄話』的方式發言,這些『悄悄話』將不會被顯示出來讓大家看到,當然,老師擁有管理的能力,只要以密碼登入管理模式,就可以進行各個學生家長的單獨意見回覆,而且還能看到家長們所留下的『悄悄話』。

組成構造
   本範例中使用了多種ASP物件的引用,同時還應用了許多網頁表單的設計技巧,不過!如果您已經熟悉了我們上一章『文字檔聯絡簿』範例的原理,相信本範例中所提之設計理論對各位網路e教師來說,簡直就是易如反掌。


    因為本『家庭聯絡簿』的功能比較多,同時程式的內容也較為複雜,因此我們聯絡簿的構成共分成六大部分:


下圖為家庭聯絡簿的組成與關聯性說明圖:

[attach]921[/attach]
作者: 小誌    時間: 2010-5-26 00:27

資料庫與留言顯示程式網頁
因為我們將家長發言與老師回覆的內容資料全部儲存在資料庫中,因此,要在網頁中顯示目前的家長發言與老師回覆資料,則我們必須先進行資料庫的連結與開啟,要連結資料庫我們必須使用ADO物件群的Connection物件;而要開啟資料庫則必須使用DO物件群的Recordset物件,現在就請您先檢視一下程式內容,接下來我們再來分析一下程式中的每一個動作。
  1. Set CN = Server.CreateObject("ADODB.Connection")
  2. CN.Open "Driver={Microsoft Access Driver (*.mdb)};_
  3. DBQ="&Server.MapPath("message.mdb")
  4. Set RS=Server.CreateObject("ADODB.Recordset")
  5. SQL="SELECT*From allmessage order by 留言日期 Desc"
  6. RS.Open SQL,CN,1,1
複製代碼
建立一個Connection物件:CN
  1. Set CN = Server.CreateObject("ADODB.Connection")
複製代碼
建立與資料庫的連線是存取網路資料庫第一件要作的事,執行上列的敘述,我們就建立了一個名為『CN』的Connection資料庫連結物件。

使用CN.Open方法開啟『message.mdb』資料庫
  1. CN.Open "Driver={Microsoft Access Driver (*.mdb)};_
  2. DBQ="&Server.MapPath("message.mdb")
複製代碼
提示
當程式敘述太長時,我們可以利用『-』底線將程式敘述分隔成兩行,我們上列的敘述就因為太長了,筆者利用『-』底線將程式敘述分隔成兩行。



作者: 小誌    時間: 2010-5-26 00:30

建立一個Record Set物件:RS
  1. Set RS=Server.CreateObject("ADODB.Recordset")
複製代碼
Recordset物件是負責瀏覽與操作從資料庫取出來的資料,Connection物件只負責與資料庫進行連結的動作,並不能使用資料庫內的資料,因此我們必須建立一可以存取資料庫資料的Recordset物件,執行上列的敘述,我們就建立了一個名為『RS』的Recordset資料庫存取物件。

使用RS.Open方法存取『message.mdb』資料庫
  1. RS.Open SQL,CN,1,1
複製代碼
使用open方法來開啟資料表或執行Select指令參數設定如下:

作者: 小誌    時間: 2010-5-26 00:37

資料排序與SQL指令
我們之前談到,使用Recordset物件的open方法來開啟資料表時我們使用了一段SQL語法:
  1. SELECT*From allmessage order by 留言日期 Desc
複製代碼
現在我們就來看看如何撰寫SQL指令:

可篩選資料的Select指令



可排序資料的Select指令



了解了SQL語言的Select指令用法後,我們回過頭來看一下我們在『顯示留言意見』網頁中的開啟資料庫ASP程式中的敘述:
  1. SELECT*From allmessage order by 留言日期 Desc
複製代碼
這個敘述的意義為:從資料表『allmessage』中取出所有欄位的資料,並將取出的資料錄內容依照『留言日期』欄位使用的『由大排到小』排序方式進行排序。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)