html5-img
1 / 28

ASP.NET 網頁製作教本 – 從基本語法學起

ASP.NET 網頁製作教本 – 從基本語法學起. 第 18 章 聊天室、新聞討論群組. 18-1 聊天室. 範例網頁的組成. 操作說明 – Step1-1. 聊天室要從 Enter.aspx 進入,畫面如下:. 操作說明 – Step1-2. Users 資料表的內容如下:. 操作說明 – Step1-3. 架框網頁 :. 操作說明 – Step 2. 三個網頁的用途分別是:. 資料庫的寫入(1). 把發言的內容寫到 Chatroom.mdb 資料庫的 Chatroom 資料表之中,而此一資料表的結構如下:.

jabir
Download Presentation

ASP.NET 網頁製作教本 – 從基本語法學起

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.NET 網頁製作教本 –從基本語法學起 第 18 章 聊天室、新聞討論群組

  2. 18-1 聊天室

  3. 範例網頁的組成

  4. 操作說明 – Step1-1 • 聊天室要從 Enter.aspx 進入,畫面如下:

  5. 操作說明 – Step1-2 • Users 資料表的內容如下:

  6. 操作說明 – Step1-3 • 架框網頁 :

  7. 操作說明 – Step 2 • 三個網頁的用途分別是:

  8. 資料庫的寫入(1) • 把發言的內容寫到 Chatroom.mdb 資料庫的 Chatroom 資料表之中,而此一資料表的結構如下:

  9. 資料庫的寫入(2) • 「時間」欄位的預設值設定成 Now() 函數,當我們新增發言時,Access 會自動幫我們填入當時的系統時間,程式如下: Talk.aspx #42~49 #42 SQL = "Insert Into Chatroom (姓名, 內容) Values (?, ?)" #43 Cmd = New OleDbCommand( SQL, Conn ) #44 Cmd.Parameters.Add( New OleDbParameter("@姓名", OleDbType.Char, 50)) #45 Cmd.Parameters.Add( New OleDbParameter("@內容", OleDbType.VarChar)) #46 Cmd.Parameters("@姓名").Value = Session("Name") #47 Cmd.Parameters("@內容").Value = Word.text #48 #49 Cmd.ExecuteNonQuery()

  10. 如何重讀資料庫(1)

  11. 如何重讀資料庫(2) • Reload.aspx 網頁每秒鐘會自我重新整理一次,HTML 標示如以下粗體字的部分: <HTML> <HEAD> <META HTTP-EQUIV="refresh" CONTENT="1";URL="Reload.aspx"> </HEAD> <BODY BgColor=White> 系統時間: <%=Now()%><HR> </BODY> </HTML>

  12. 如何重讀資料庫(3) • View.aspx,其關鍵性的標示及程式碼如下: View.aspx #05 <Head> #06 <META HTTP-EQUIV="refresh“CONTENT="<%=Freq%>";URL="<%=URL%>"> #07 </Head> … #37 Dim Freq As Integer #38 Dim URL As String #39 Sub Page_Load(sender As Object, e As EventArgs) #40 Freq = Session( "Freq" ) #41 If Freq = 0 Then Freq = 30 #42 URL = Request.ServerVariables("PATH_INFO") … #62 End Sub

  13. 如何重讀資料庫(4) • 重讀的時間間隔可以由上網者自行設定,而設定的程式在 Setup.aspx 之中: Setup.aspx #23~31 #23 Sub Set_Click(sender As Object, e As EventArgs) #24 If Val(Freq.Text) > 0 Then #25 Session("Freq") = Val(Freq.Text) #26 Else #27 Freq.Text = "30" #28 Session("Freq") = 30 #29 End If #30 Msg.Text = "重讀時間間隔已設定為 " & Freq.Text & "秒!" #31 End Sub

  14. 架框的設定 • 顯示 架框,其所輸出的標示如下: • 其中 #69的敘述把 Talk.aspx 及 Setup.aspx 橫向分割成2:1,而 #68 又把 View.aspx 及 (Talk.aspx, Setup.aspx) 縱向分割成2:1。 t#6 Response.Write( "" & _ #67 "<HTML>" & _ #68 "<FRAMESET Rows='*, 2*'>" & _ #69 " <FRAMESET Cols='2*,*'>" & _ #70 " <FRAME Src='Talk.aspx' Name='Talk'>" & _ #71 " <FRAME Src='Setup.aspx'>" & _ #72 " </FRAMESET>" & _ #73 " <FRAME Src='View.aspx' Name='View'>" & _ #74 "</FRAMESET>" & _ #75 "</HTML>" )

  15. 18-2 新聞討論群組

  16. 範例網頁的組成(1)

  17. 範例網頁的組成 (2)

  18. 範例網頁的組成 (3)

  19. Titles(主題總表)資料表

  20. Details(討論內容)資料表

  21. Titles 及 Details 的關係

  22. 程式設計注意事項 –Title.aspx:顯示主題總表(1)

  23. 程式設計注意事項 –Title.aspx:顯示主題總表(2) • Title.aspx 建立「日期」欄位的程式: Title.aspx #105~112 #105 Table1.Columns.Add(New DataColumn("日期", GetType(String))) #106 For I = 0 TO Table1.Rows.Count - 1 #107 Dim D1 As Date = Table1.Rows(I).Item("CreateDate") #108 Dim D2 As Date = Table1.Rows(I).Item("LastNewsDate") #109 Table1.Rows(I).Item("日期") = "" & _ #110 Format( D1, "MM/dd" ) & "-" & _ #111 Format( D2, "MM/dd" ) #112 Next

  24. 程式設計注意事項 –Title.aspx:顯示主題總表(3) • 注意事項一 : • 要按照 LastNewsDate(討論主題最後被討論的日期)欄位做遞減排序。

  25. 程式設計注意事項 –Title.aspx:顯示主題總表(4) • 注意事項二 : • 當討論主題越來越多時,所須下載的資料就會越來越多,執行速度也就越來越慢。方法: 1.限定資料錄的筆數。 2.只選取若干天以內所發起或討論過的主題。 Select Top 50 * From Titles Order By LastNewsDate Desc Select * From Titles Where LastNewsDate > DateAdd('d',-14,Now()) Order By LastNewsDate Desc

  26. 程式設計注意事項 –Detail.aspx:儲存討論內容(1) • 當上網者進入某一個討論主題,並且發表意見之後,Detail.aspx 除了要將討論內容儲存於 Details 資料表之外,也會同時更新 Titles 資料表的以下兩個欄位:

  27. 程式設計注意事項 –Detail.aspx:儲存討論內容(2) • 所撰寫的更新敘述如下: Detail.aspx #160~163 #160 SQL = "Update Titles Set LastNewsDate=Now(), [Number]=[Number]+1" & _ #161 " Where TitleID=" & TitleID #162 Cmd = New OleDbCommand( SQL, Conn ) #163 Cmd.ExecuteNonQuery()

  28. 程式設計注意事項 –Detail.aspx:儲存討論內容(3) • 以上程式出現了兩個特殊的敘述: • Update Titles Set LastNewsDate=Now(), [Number]=[Number]+1: • (1) Now 是 VB 的函數,可以使用於 SQL 指令 。(2) Number 是 SQL 的保留字,要存取名稱為 Number 的欄位,須在名稱前後加上 [ ],使之成為 [Number]。 • “Where TitleID=” & TitleID:忽略了這個條件式,則 Tiltles 資料表的所有資料錄將會全部被更新。

More Related