240 likes | 383 Views
第 13 章 ADO.NET的資料庫存取. 資料庫簡介 - 說明. 一般來說,我們所泛稱的「資料庫」( Database ),正確的說只是「資料庫系統」( Database System )的一部分,資料庫本身如同是一個電子檔案櫃,它是一種資料儲存單位,內容是經過組織的資料集合。 在資料庫儲存的資料是企業能夠正常運作的關鍵。想想看!銀行如果沒有帳戶和交易記錄的資料庫,客戶存款和提款要如何運作。航空公司需要依賴訂票系統的資料庫,才能讓旅行社訂機票,旅客才知道班機是否已經客滿。. 資料庫簡介 - 資料庫系統 ( 說明 ).
E N D
資料庫簡介-說明 • 一般來說,我們所泛稱的「資料庫」(Database),正確的說只是「資料庫系統」(Database System)的一部分,資料庫本身如同是一個電子檔案櫃,它是一種資料儲存單位,內容是經過組織的資料集合。 • 在資料庫儲存的資料是企業能夠正常運作的關鍵。想想看!銀行如果沒有帳戶和交易記錄的資料庫,客戶存款和提款要如何運作。航空公司需要依賴訂票系統的資料庫,才能讓旅行社訂機票,旅客才知道班機是否已經客滿。
資料庫簡介-資料庫系統(說明) • 資料庫系統(Database Systems)是由資料庫(Database)和「資料庫管理系統」(Database Management Systems)組成,例如:SQL Server Express和Access是資料庫管理系統,iPods.mdf和iPods.mdb檔案是資料庫。 • 目前主流的資料庫管理系統是關聯式資料庫管理系統(Relational Database Management Systems),例如:Access、MySQL、SQL Server和Oracle等。Visual Basic資料庫應用程式的架構。
資料庫簡介-資料庫系統(圖例) • 應用程式存取資料是下達SQL(Structured Query Language)語言給資料庫管理系統後,資料庫管理系統依指令來查詢、新增、刪除和更新資料庫的資料。
資料庫簡介-資料庫的組成:資料表、記錄與欄位(說明)資料庫簡介-資料庫的組成:資料表、記錄與欄位(說明) • 資料庫主要的目的是儲存資料,資料是儲存在資料庫的「資料表」(Tables),每一個資料表使用「欄位」(Fields)分類成很多群組,每一個群組是一筆「記錄」(Records),例如:通訊錄資料表的記錄,如下表所示:
資料庫簡介-資料庫的組成:資料表、記錄與欄位(索引)資料庫簡介-資料庫的組成:資料表、記錄與欄位(索引) • 資料庫可以擁有多個資料表,為了加速資料存取,資料表可以使用「索引」(Index)技術將資料系統化整理,以便在大量資料能夠快速找到所需的資料或進行排序。 • 例如:在通訊錄資料表使用編號欄位建立主索引鍵,或稱為「主鍵」(Primary Key),如此就可以透過編號來加速資料表記錄的搜尋和排序功能。
ADO.NET的基礎-說明 • ADO.NET是微軟的資料存取技術,可以使用一致的物件模型存取資料來源的資料,也就是一致的資料處理方式,至於資料來源並不限資料庫,幾乎任何資料來源都可以。 • 以Visual Basic應用程式來說,使用ADO.NET主要的目的是建立資料庫應用程式。在ADO.NET元件的眾多類別是以名稱空間或稱命名空間(Namespace)的類別架構來組織,屬於一種階層架構(進一步說明請參閱第17章)。
ADO.NET的基礎-名稱空間 • ADO.NET的主要名稱空間的說明,如下表所示:
ADO.NET物件模型-圖例 • ADO.NET主要類別物件有:Connection、Command、DataReader和DataSet,其物件模型如下圖所示:
ADO.NET物件模型-說明1 • Connection物件:可以建立與資料來源間的連接,OLE DB是使用OleDbConnection物件;SQL Server是使用SqlConnection物件;SQL Server Compact是使用SqlCeConnection物件。 • Command物件:對資料來源執行指令,以資料庫來說,就是執行SQL指令。OLE DB是使用OleDbCommand物件;SQL Server是使用SqlCommand物件;SQL Server Compact是使用SqlCeCommand物件。
ADO.NET物件模型-說明2 • DataReader物件:可以從資料來源使用Command物件執行指令,取得唯讀(Read-Only)和只能向前(Forward-Only)的串流資料,每次只能從資料來源讀取一列資料(即一筆)儲存到記憶體,所以執行效率非常高。OLE DB是使用OleDbDataReader物件;SQL Server是使用SqlDataReader物件;SQL Server Compact是使用SqlCeDataReader物件。
ADO.NET物件模型-說明3 • DataSet和DataTable物件:DataSet物件是由DataTable物件組成的集合物件,DataSet物件代表儲存在記憶體的資料庫,每一個DataTable儲存一個資料表的記錄資料,並且可以設定資料表間的關聯性(Relationship)。 • DataAdapter物件:它是DataSet和Connection物件資料連接間的橋樑,可以將資料表填入DataSet物件。OLE DB是使用OleDbDataAdapter物件;SQL Server是使用SqlDataAdapter物件;SQL Server Compact是使用SqlCeDataAdapter物件。
新增資料來源 • ADO.NET與資料繫結 • 新增資料來源的DataSet物件 • DataGridView控制項的資料繫結
ADO.NET與資料繫結-說明 • 資料繫結(Databinding)可以將外部資料整合到Windows Form控制項。它是一種高擴充性、可重複使用和容易維護的技術。 • .NET Framework的資料繫結技術可以將控制項屬性連接到任何可用「資料」(Data),在此的資料可以是單純資料、物件屬性,控制項名稱的集合物件等,.NET Framework可以將這些資料視為類別的屬性來存取。 • ADO.NET在資料繫結扮演資料提供者的角色,也就是將ADO.NET取得的資料整合至Windows Form控制項,換句話說,我們可以輕鬆在控制項顯示資料庫的記錄資料。
ADO.NET與資料繫結-物件說明 • 當Visual Basic專案使用資料來源建立資料繫結後,就會自動在元件匣新增相關物件來建立Visual Basic資料庫應用程式。其說明如下: • DataConnector物件:資料來源和控制項間的連結,它連結的是單一資料表的資料,即DataTable物件,簡單的說,透過它可以設定連接至DataSet物件的哪一個資料表。 • TableAdapter物件:其功能類似DataAdapter物件,可以支援資料來源的資料表來執行多次查詢。換句話說,只需單一TableAdapter物件,就可以更新DataSet物件中,多個資料表的記錄資料。 • DataNavigator物件:瀏覽資料來源DataSet物件的工具列控制項,提供按鈕可以移至前一筆、下一筆、新增、編輯和刪除記錄資料等。
新增資料來源的DataSet物件-說明 • VBE提供資料來源組態精靈,可以在專案新增資料庫、Web服務或物件的資料來源(Data Source),也就是建立DataSet物件。 • 在Visual Basic控制項可以使用資料繫結技術來顯示資料庫的記錄資料,我們並不用自行撰寫程式碼,只需使用資料來源組態精靈新增資料來源,就可以自動建立資料繫結所需的DataSet物件。
新增資料來源的DataSet物件-資料來源組態精靈3(資料來源視窗)新增資料來源的DataSet物件-資料來源組態精靈3(資料來源視窗)
DataGridView控制項的資料繫結-說明 • 在「資料來源」視窗展開資料表的DataTable物件後,只需拖拉資料表至表單,就可以自動建立DataGridView控制項,或單筆編輯所需的控制項。
DataGridView控制項的資料繫結-瀏覽編輯 • 在「資料來源」視窗的資料表選【DataGridView】後,將資料表拖拉至表單,就可以建立DataGridView控制項,以瀏覽方式來顯示記錄資料,並且自動建立資料繫結所需的相關物件,如下圖所示:
DataGridView控制項的資料繫結-單筆編輯 • 在「資料來源」視窗的iPod資料表後選【詳細資料】,就可以自動建立單筆記錄編輯功能所需的控制項,和資料繫結的相關物件,如右圖所示: