Download presentation
Presentation is loading. Please wait.
1
第 9 章 網頁資料庫的操作 9-1 網頁資料庫的基礎 9-2 資料庫與 ODBC 的建立 9-3 SQL 語言的基礎 9-4 ADO.NET 的基礎 9-5 SQL 指令的資料庫操作 9-6 DataSet 的資料庫操作 9-7 使用參數 SQL 指令的資料庫操作
2
9-1 網頁資料庫的基礎 9-1-1 什麼是網頁資料庫 9-1-2 網頁資料庫的系統需求 9-1-3 如何建立網頁資料庫
3
9-1-1 什麼是網頁資料庫 轉換到 Web 舞台的資料庫,其本質並沒有轉變, 只是資料庫的使用介面改為網頁,資料庫成為 網頁內容的來源,網頁資料庫是一種結合前端 網頁的使用介面、後端 Web 伺服器和資料庫系 統的一種應用程式架構。 不僅如此,在結合後端的資料庫系統後,網頁 已經成為一種 Web 應用程式的開發環境,而不 再只是一種展示舞台,應用程式可以徹底打破 地域的限制,因為只要連上 Internet ,就能夠使 用 Web 應用程式存取資料庫的內容。
4
9-1-2 網頁資料庫的系統需求 網頁資料庫系統除了需要 Web 伺服器外,還需 要支援的資料庫系統,以 ASP.NET 開發測試系 統的環境來說,就是使用 Windows XP Profession 的 IIS 加上 Access 2002 的資料庫系統, 網頁資料庫開發測試環境的軟體需求,如下所 示: –Windows XP Professional 作業系統。 –IIS 5 的 Web 伺服器。 –Access 2002 資料庫系統。
5
9-1-3 如何建立網頁資料庫 ASP.NET 技術提供更佳的解決方案存取資料庫 的內容,其建立網頁資料庫的步驟,如下所示: –Step 1 :建立網頁所需的資料庫,即 Access 的資料庫 檔案.mdb ,或 SQL Server 的資料庫。 –Step 2 :新增伺服器的 ODBC 資料來源或直接使用 OLEDB 或 SQL Server 的「提供者」( Managed Providers )連結資料庫。 –Step 3 :撰寫 ASP.NET 程式,使用 ADO.NET 存取資 料庫的內容。 –Step 4 :啟動瀏覽程式執行與測試網頁資料庫。
6
9-2 資料庫與 ODBC 的建立 9-2-1 使用 Access 建立資料庫 9-2-2 在 SQL Server 建立資料庫 9-2-3 建立 ODBC 系統資料來源
7
9-2-1 使用 Access 建立資料庫 範例資料庫是儲存使 用者註冊的資料,使 用 Access 建立這個資 料庫【 Users.mdb 】, 資料表【 Users 】的記 錄欄位,如左表所示:
8
9-2-2 在 SQL Server 建立資料庫 SQL Server 的版本需要 7.0 以上或使用「 MSDE 」 ( Microsoft Data Engine )。筆者提供 ASP.NET 程式可以建立與前面 Access 資料庫相同的資料 庫和資料表,如下表所示:
9
9-2-3 建立 ODBC 系統資料來源 如果是使用 ODBC 建立資料庫連結,在 Web 伺 服器的電腦需要新增「 ODBC 」( Open DataBase Connectivity )系統資料來源「 DSN 」 ( Data Source Name 。 在 Windows XP 執行「開始 / 控制台」指令,在 「控制台」視窗選【效能及維護】下的【系統 管理工具】,按兩下【資料來源 (ODBC) 】圖 示,在 ODBC 資料來源管理員新增。
10
9-3 SQL 語言的基礎 9-3-1 什麼是 SQL 9-3-2 SQL 的基本指令
11
9-3-1 什麼是 SQL 「 SQL 」( Structured Query Language )是目前主要的 資料庫語言,早在 1970 年, E. F. Codd 建立了關聯式資 料庫的觀念,同時就提出一個構想的資料庫語言,它 是一種完整、通用的資料存取方式,雖然當時並沒有 真正建立語法,但這便是 SQL 的源起。 1974 年一種稱為 SEQUEL 的語言,這是 Chamberlin 和 Boyce 的作品,它建立了 SQL 的原型, IBM 稍加修改後 作為其資料庫 DBMS 的資料庫語言,稱為 System R , 1980 年 SQL 的名稱正式誕生,從那天開始, SQL 逐漸 壯大成為一種標準的關聯式資料庫語言。
12
9-3-2 SQL 的基本指令 - 說明 SQL 資料庫語言的指令並不多,除了那些資料 庫結構的語法,單以記錄的存取和資料查詢指 令來說,只有四個指令,如下表所示:
13
9-3-2 SQL 的基本指令 - 插入記 錄 SQL 的插入記錄操作是新增一筆記錄到資料表, 指令【 INSERT 】的基本語法,如下所示: INSERT INTO table (column1,column2,…..) VALUES ('value1', 'value2 ', …) 上述指令的 table 是準備插入記錄的資料表名稱, column1~n 為資料表內的欄位名稱,而 value1~n 則是對應的欄位值。
14
9-3-2 SQL 的基本指令 - 刪除記 錄 SQL 的刪除記錄操作是將符合條件的資 料表記錄刪除,指令【 DELETE 】的基本 語法,如下所示: DELETE FROM table WHERE conditions 上述指令 table 是資料表, conditions 為刪 除記錄的條件,以口語來說是「將符合 conditions 條件的記錄刪除掉」。
15
9-3-2 SQL 的基本指令 - 更新記 錄 SQL 的更新記錄操作是將資料表內符合條件的 記錄,更新欄位的內容,指令【 UPDATE 】的 基本語法,如下所示: UPDATE table SET column1 = 'value1' WHERE conditions 上述指令的 table 是資料表, column1 是資料表 的欄位名稱,欄位不用包含全部的資料表欄位, 只需指定需要更新的欄位即可, value1 是更新 的欄位值,如果更新的欄位不只一個,請使用 逗號分隔,如下所示: UPDATE table SET column1 = 'value1', column2 = 'value2' WHERE conditions
16
9-4 ADO.NET 的基礎 9-4-1 什麼是 ADO.NET 9-4-2 ADO.NET 的物件模型
17
9-4-1 什麼是 ADO.NET- 說明 ADO.NET 是微軟新一代的技術,它是「 ADO 」 ( ActiveX Data Object )元件的後繼者,其主要的目的 是在.NET Framework 平台存取資料,簡單的說,在舊 版 ASP 程式存取資料庫是使用 ADO 元件,在新版 ASP.NET 就是使用 ADO.NET 進行資料庫的存取。 ADO.NET 的目的是提供一致的物件模型,用來存取和 編輯資料來源的資料,換句話說,就是提供一致的資 料處理方式,至於資料來源並不限資料庫,幾乎任何 資料來源都可以,以 ASP.NET 的應用來說, ADO.NET 的主要功能是存取資料庫,所以 ASP.NET 使用 ADO.NET ,一般來說都是為了建立網頁資料庫。
18
9-4-1 什麼是 ADO.NET- 名稱空 間 ADO.NET 的類別存取資料庫的資料,其主要的 名稱空間有三個,如下表所示:
19
9-4-2 ADO.NET 的物件模型
20
9-4-2 ADO.NET 的物件模型 - Connection 物件 Connection 物件是用來建立與存取資料來 源的連結,以資料庫來說 Connection 物件 還負責初始資料庫,它和 ADO 元件 Connection 物件的功能十分相似。 Connection 物件共有兩種: –OLE DB 是使用 OleDbConnection 物件。 –SQL Server 是使用 SqlConnection 物件。
21
9-4-2 ADO.NET 的物件模型 - Command 物件 Command 物件可以對資料來源執行指令,以資 料庫的資料來源而言,就是執行 SQL 指令,我 們可以使用 Commad 物件送出 SQL 指令來新增、 刪除、更新和查詢資料表的記錄,它和 ADO 元 件 Command 物件的功能十分相似。 程式需要先使用 Connection 物件建立資料庫連 結,之後才能使用 Command 物件執行 SQL 指令, Command 物件也分為兩種: –OLE DB 是使用 OleDbCommand 物件。 –SQL Server 是使用 SqlCommand 物件。
22
9-4-2 ADO.NET 的物件模型 - DataReader 物件 ADO 元件的 RecordSet 物件在新版 ADO.NET 分 為 DataReader 和 DataSet 兩種物件。 DataReader 物件可以從資料來源使用 Command 物件執行指令,取得「唯讀」( Read-Only ) 和「只能向前」( Forward-Only )的串流資料, 因為每次只從資料來源讀取一列資料(即一 筆),所以讀取資料的執行效率非常的高。 DataReader 物件分為兩種: –OLE DB 是使用 OleDbDataReader 物件。 –SQL Server 是使用 SqlDataReader 物件。
23
9-4-2 ADO.NET 的物件模型 - DataSet 和 DataTable 物件 DataSet 物件是由 DataTable 物件組成的物件集合, DataSet 物件可代表一個儲存在記憶體中的資料 庫,每一個 DataTable 儲存一個資料表的記錄資 料,並且可以設定資料表間的關聯。 DataSet 和 DataTable 類別都屬於 System.Data 名 稱空間,使用 DataAdapter 類別的方法 Fill 將資 料表的資料填入 DataSet 物件。 DataAdapter 物件分為兩種: –OLE DB 是使用 OleDbDataAdapter 物件。 –SQL Server 是使用 SqlDataAdapter 物件。
24
9-5 SQL 指令的資料庫操作 9-5-1 SQL 指令的資料庫操作 9-5-2 插入新記錄 9-5-3 刪除記錄 9-5-4 更新記錄
25
9-5-1 SQL 指令的資料庫操作 - 匯入名稱空間 ASP.NET 程式需要先匯入所需的名稱空間 Namespace ,如下所示: 上述名稱空間是使用在非 SQL Server 的資料庫 系統( 7.0 以上的版本),例如: Access 或 Oracle ,如果是 SQL Server ,其匯入的名稱空 間,如下所示:
26
9-5-1 SQL 指令的資料庫操作 - 步驟 第一步:建立和開啟資料庫連結 第二步:建立 Command 物件 第三步:執行 SQL 指令處理資料庫 第四步:關閉資料庫連結
27
9-5-2 插入新記錄 插入一筆新記錄的 SQL 指令字串,如下 所示: strSQL = "INSERT INTO USERS (name,birthday,salary,email,username,userpassword) " strSQL = strSQL & "VALUES ('" & name.Text & "'," strSQL = strSQL & "#" & birthday.Text & "#," strSQL = strSQL & salary.Text & ",'" strSQL = strSQL & email.Text & "','" strSQL = strSQL & username.Text & "','" strSQL = strSQL & password.Text & "')"
28
9-5-3 刪除記錄 建立 SQL 指令字串就可以使用 Command 物件執行指令來刪除記錄,如下所示: strSQL = "DELETE FROM USERS WHERE UserName ='" & _ username.Text & "'"
29
9-5-4 更新記錄 SQL 指令以使用者帳號作為更新記錄的 條件,更新的欄位為 UserPassword 和 Email , SQL 指令字串 strSQL ,如下所示: strSQL = "UPDATE USERS SET " strSQL = strSQL & "UserPassword='" & password.Text & "', " strSQL = strSQL & "Email='" & email.Text & "'" strSQL = strSQL & " WHERE UserName='" & username.Text & "'"
30
9-6 DataSet 的資料庫操作 9-6-1 DataSet 物件的資料庫操作 9-6-2 插入新記錄 9-6-3 刪除記錄 9-6-4 更新記錄
31
9-6-1 DataSet 物件的資料庫操作 第一步:建立 Connection 物件 第二步:建立 DataAdapter 和 CommandBuilder 物件 第三步:建立 DataSet 物件填入記錄資料 第四步:在 DataTable 執行資料庫操作 第五步:更新資料表的記錄 第六步:關閉資料庫連結
32
9-6-2 插入新記錄 在 DataTable 插入記錄是新增 DataRow 物件,其 程式碼如下所示: Dim objDataRow As DataRow objDataRow = objDataSet.Tables("Users").NewRow() 接著就可以輸入各欄位值,如下所示: objDataRow("name") = name.Text objDataRow("birthday") = birthday.Text ………………… objDataRow("userpassword") = password.Text 最後將 DataRow 物件新增到 DataTable ,如下: objDataSet.Tables("Users").Rows.Add(objDataRow)
33
9-6-3 刪除記錄 使用 DataSet 物件刪除資料表的記錄,其 程式碼如下所示: For Each objDataRow in objDataSet.Tables("Users").Rows If objDataRow("UserName") = username.Text Then objDataRow.Delete() ' 刪除此記錄 End If Next
34
9-6-4 更新記錄 資料表使用 DataSet 物件更新記錄操作同 樣需要使用迴路找到欲更新的記錄,如 下所示: For Each objDataRow in objDataSet.Tables("Users").Rows If objDataRow("UserName") = username.Text Then ' 更新記錄資料 objDataRow("UserPassword") = password.Text objDataRow("Email") = email.Text End If Next
35
9-7 使用參數 SQL 指令的資料庫 操作 - 參數 SQL 指令 ADO.NET 的 Command 物件可以新增 Parameter 物件的參數,只需指定不同的 Parameter 物件的 參數值,就可以執行不同的 SQL 指令。 Command 物件的 SQL 指令字串需要新增參數, 這些是以「@」符號開頭的字串名稱,如下: strSQL = "INSERT INTO USERS (name,birthday,salary,email" & _ ",username,userpassword) " strSQL = strSQL & "VALUES ( @name, @birthday, @salary, " strSQL = strSQL & "@email, @username, @password)” 接著使用 SQL 指令字串建立 Command 物件,如 下所示: objCmd = New OleDbCommand(strSQL, objCon)
36
9-7 使用參數 SQL 指令的資料庫 操作 - 新增 Command 物件參數 然後使用 Parameters 屬性取得 ParameterCollection 物件集合,使用 Add 方法新 增參數的 Parameter 物件,如下所示: objCmd.Parameters.Add(New OleDbParameter("@name", _ OleDbType.Varchar, 10)) objCmd.Parameters.Add(New OleDbParameter("@birthday", _ OleDbType.Date)) objCmd.Parameters.Add(New OleDbParameter("@salary", _ OleDbType.Currency)) …………………
37
9-7 使用參數 SQL 指令的資料庫 操作 - 指定參數值 Command 物件新增 ParameterCollection 物 件集合的參數物件後,在使用 Execute 方 法執行 SQL 指令前,我們需要指定參數 值,如下所示: objCmd.Parameters("@name").Value = name.Text objCmd.Parameters("@birthday").Value = birthday.Text objCmd.Parameters("@salary").Value = salary.Text …………………
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.