簡介
知道如何編輯資料庫之後可以很容易想像出留言版的機制,就是大家可以:
→用文字盒在網頁上寫入訊息
→訊息再寫入伺服器的資料庫
→更新網頁即可看到新訊息
比較困難的是新訊息進入時如何讓不是發言的人網頁自動更新,這部份是較複雜的網路通訊,將在後續單元的Ajax機制時再談

建置資料庫
建立一個Access資料庫,開啟一張資料表,建立項目:
Time:設為主索引健,資料型態為日期時間
Name: 留言者姓名 
Talk: 留言內容(字數可以比預設的50增加,最多255字)

開啟新ASP專案,將資料庫放到專案的App_Data目錄

設計頁面
1.放置一個 GridView 連到上述資料表,DataSource設定為可編輯(但GridView不要啟用編輯)。
2.設置一個文字盒輸入留言者,一個文字盒寫留言,一個按鍵確定發言。

3.在按鈕事件中寫程式:
 Dim T As String = My.Computer.Clock.LocalTime.ToString '現在時間
 Dim M As String = TextBox2.Text '留言內容
 Dim U As String = TextBox1.Text '使用者名稱
 Me.AccessDataSource1.InsertCommand = "INSERT INTO [留言板] ([time], [name], [talk]) VALUES ('" + T + "','" + U + "','" + M + "')"
 '請注意到上面指令中的單引號『'』
 Me.AccessDataSource1.Insert() TextBox1.Text = "" TextBox2.Text = "" GridView1.DataBind()

其中第一行是取得目前電腦的系統時間→ T;接著是留言內容(M)與留言者(U)
第四行建立一個新增一筆留言資料的SQL
指令,現在時間、留言內容與留言者會寫入資料庫;
請注意資料表需要依你自己的資料表
名稱更改。
接著執行新增的動作(Insert),就是經過AccessDataSource將資料寫到資料庫中

完成資料新增後清除輸入文字盒;
GridView.DataBind是讓GridView
重新讀取一次已更新的資料庫

 


惡客IP偵測與封鎖
留言板最怕有人搗亂,有效的方法是偵測IP並封鎖之,要知道上網者的IP請在網頁上加個Label,並在確定留言的程式最前面加上:
Dim IPs As String = Request.UserHostAddress
Label1.Text=IPs
If IPs = "封鎖IP" Then Exit Sub
這樣可以顯示上網者的IP(在Label1),如果發現是惡客,就不執行以下的留言動作,他就無法發言了!

搜尋發言者
留言板上發言太多,只想找某個人的發言,可以設計一個文字盒(TextBox3),在放個搜尋按鍵(Button2),寫程式如下:

請注意,[留言板]是老師測試時的資料表名稱,應視情況修改。
恢復顯示全部的程式應該和上面程式相似,只是將 where 之後的條件部分刪除。

搜尋發言內容
如果想找發言內容包含某些關鍵字的發言,可以再加一個文字盒(TextBox4),一個按鍵(Button3)寫程式如下:

%』是微軟版的SQL語言中的萬用字元,表示任何字與個數的意思, Like 是這一點有像即可的意思!