第14章數據庫應用程序設計_第1頁
第14章數據庫應用程序設計_第2頁
第14章數據庫應用程序設計_第3頁
第14章數據庫應用程序設計_第4頁
第14章數據庫應用程序設計_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2022年3月15日第16章 Web服務創建和使用服務創建和使用 主講教師: 楊建軍教學目標 本章介紹了如何使用C#訪問關系數據庫。討論ADO.NET的結構以及如何使應ADO.NET訪問關系數據庫,通過本章的學習,讀者應掌握C#的數據庫編程,能夠編寫C#程序訪問各種常見的數據庫類型 。絕大多數軟件系統都需要有數據庫的支持,因此數據庫編程也是每一個開發者應該掌握的。 教學重點lADO.NET概述l.NET數據提供者lDataSet數據集l使用數據庫l數據綁定 14.1 ADO.NET概述概述 ADO.NET是美國微軟公司最新推出.NET平臺中的一種數據訪問技術,是專門為.NET Framewor

2、k而設計的,是ADO的升級版本;ADO.NET集成了到.NET Framework中,可用于任何.NET語言,尤其是C#;ADO.NET包括所有的System.Data命名空間及其嵌套的命名空間 。ADO.NET將成為構建.NET數據庫應用程序的基礎。 ADO.NET類庫中提供了用于數據連接、處理數據操作的類。System.Data名稱空間可以通過數據提供者(provider)與數據庫通信,ADO.NET對象允許通過組件連接到數據庫,在數據庫中進行檢索、編輯、刪除和插入數據,并在程序中處理數據。ADO.NET支持已連接環境和非連接環境的數據訪問。 14.1.1 ADO.NET架構 ADO.NE

3、T架構的兩個主要組件lData Provider(數據提供者)lDataSet(數據集) 14.1.2 .NET Framework數據提供數據提供程序程序 1.NET Framework有四種數據提供程序有四種數據提供程序l.NET Framework有以下四種數據提供程序:lSQL Server .NET Framework數據提供程序。lOLE DB .NET Framework數據提供程序。lODBC .NET Framework數據提供程序。lOracle .NET Framework數據提供程序。14.1.2 .NET Framework數據提供數據提供程序程序 2. .NET D

4、ata Provider核心類核心類.NET Framework數據提供程序包括四個核心類,用于實現對數據庫的數據處理。(1) Connection對象數據庫應用程序和數據庫進行交互要在建立數據庫連接的基礎上進行。Connection對象成為連接對象,提供了對數據存儲中正在運行的事務(Transaction)的訪問技術。(2) Command對象Command對象用于執行數據庫的命令操作,命令操作包括檢索(Select)、插入(Insert)、刪除(Delete)以及更新(Update)操作。 (3) DataAdapter對象DataAdapter(數據適配器)對象在DataSet對象和數據

5、源之間架起了一座“橋梁”。 DataAdapter可以用數據源填充DataSet并解析更新。(4) DataReader對象數據流提供了高性能的、前向的數據存取機制。通過DataReader可以輕松而高效地訪問數據流。DataReader對象用于從數據庫中讀取由SELECT命令返回的只讀的數據流,在這個過程中一直保持與數據庫的連接。 14.1.3 DataSet數據集數據集 ADO.NET的一個比較突出的特點是支持離線訪問,即在非連接環境下對數據進行處理,DataSet是支持離線訪問的關鍵對象,它將數據存儲在緩存中。DataSet對象不關心數據源的類型,它將信息以表的形式存放。DataSet對

6、象是非連接存儲和處理關系的基礎。 14.1.4 ADO.NET的設計目標 簡單地訪問關系數據 l 可擴展性 ADO.NET具有良好的可擴展性 它為.NET數據提供者插件提供了框架,這些提供者可用于從任何數據源讀寫數據 l 支持多層應用程序 ADO.NET使用開放的XML標準格式在層之間通信,允許數據通過Internet防火墻來傳遞,并允許以非Microsoft技術實現一層或多層 l 統一XML和關系數據訪問 XML文檔具有分層的數據結構。.NET技術是以XML為基礎構建的,ADO.NET可以擴展.NET的用法,溝通行、列和XML文檔中的關系數據 14.2 ADO.NET對象 ADO.NET類之

7、間的關系 提供者對象 提供者對象就是指在每一個.NET數據提供者中定義的對象,其名稱前帶有特定提供者的名稱 l連接對象 l命令對象 lCommandBuilder對象 lDataReader對象lDataAdapter對象 14.2.1 Connection對象對象 在C#.NET中,通過Connection對象實現數據連接,并且在使用過程中,根據不同的數據庫的類型使用不同的Connection控件。在ADO.NET Connection 類中有兩個子類,一個是SqlConnection;另一個是OleDbConnection。 14.2.1 Connection對象對象 在C#.NET中,通

8、過Connection對象實現數據連接,并且在使用過程中,根據不同的數據庫的類型使用不同的Connection控件。在ADO.NET Connection 類中有兩個子類,一個是SqlConnection;另一個是OleDbConnection。 14.2.1 Connection對象對象 1.Connection對象常用屬性有:lConnectionString屬性:用來指定要連接的數據源。在ConnectionString屬性中,需要使用很多參數。如:Data Source用來指明數據源;Initial Catalog用來指明數據庫;Integrated Security用來指明集成安全等

9、。lConnectionTimeout屬性:獲取在嘗試建立連接時終止嘗試并生成錯誤之前所等待的時間。返回結果:等待連接打開的時間(以秒為單位)。默認值為 15 秒。lDatabase屬性:獲取當前數據庫或連接打開后要使用的數據庫的名稱。返回結果:當前數據庫的名稱或連接打開后要使用的數據庫的名稱。默認值為空字符串。lDataSource屬性:獲取要連接的數據源實例的名稱。 14.2.1 Connection對象對象 2. Connection對象常用方法對象常用方法lConnection對象最常用的方法有Open和Close方法。lOpen()方法:該方法用于打開由ConnectionStrin

10、g屬性指定的數據源連接。lClose方法():該方法用于斷開由ConnectionString屬性指定的數據源連接。 14.2.1 Connection對象對象 3. Connection對象的創建對象的創建 創建一個SqlConnection對象的方法如下:String connectionString=DataSource=yangjianjunSQLExpress;Provade=SQLOLEDB.1;Initial Catalog=Northwind;Integrated Security=True;SqlConnection con = new SqlConnection();con

11、.ConnectionString = connectionString;OleDbConnection對象的創建方法和SqlConnection對象的創建方法類似。例如:OleDbConnection con = new OleDbConnection ();14.2.2 Command對象對象 通過編程的方法創建一個Command對象:SqlCommand command = new SqlCommand ();或OleDbCommand command = new OleDbCommand();14.2.3 DataAdapter對象對象 DataAdapter對象是ADO.NET新增加

12、。在ADO.NET DataAdapter類中有兩個子類,一個是SqlDataAdapter類;另一個是OleDbDataAdapter類。 DataAdapter對象包含有SelectCommand、InsertCommand、UpdateCommand和DelectCommand四個屬性,用來定義處理數據存儲中數據的命令,并且每個命令都是對Command對象的一個引用,可以共享同一個數據源。 14.2.3 DataAdapter對象對象 通過編程的方法創建一個DataAdapter對象:SqlDataAdapter dataAdapter = new SqlDataAdapter ();或

13、OleDbDataAdapter dataAdapter = new OleDbDataAdapter ();。 14.2.4 DataReader對象對象 DataReader對象用于對數據庫的操作。在ADO.NET DataReader類中有兩個子類,一個是SqlDataReader類;另一個是OleDbDataReader類。 通過編程的方法創建一個DataReader對象:SqlDataReader reader = command.ExecuteReader();或OleDbDataReader reader = command.ExecuteReader(); 14.2.4 數據集

14、對象 數據集對象位于System.Data命名空間中,用于定義ADO.NET的斷開的、客戶端的對象,包括DataSet、DataTable、DataRow、DataColumn和DataRelation等 lDataSet是數據集對象中的首要對象,此對象表示一組相關表 lDataTable對象代表DataSet中的一個表 lDataTable對象的Rows和Columns分別是DataRow和DataColumn對象,可用于訪問DataTable表中的行和列 lDataRelation對象代表通過共享列而發生關系的兩個表之間的關系 14.2.4 數據集對象 DataSet對象的創建可以通過工具

15、欄中的控件實現;通過菜單“數據”|“生成數據集”來實現;或者選擇DataAdapter對象,單擊右上角的黑三角(智能標記),在下拉表中選擇“生成數據集”,這時,會彈出“生成數據集”對話框。如圖14-15所示。 14.2.4 數據集對象 填充填充DataSet對象:對象: DataSet對象是一個必須填充的容器,填充方法有多種:調用DataAdapter的Fill方法、手工填充、復制或合并其它DataSet的數據。我們這里介紹使用DataAdapter的Fill方法填充DataSet對象。14.3 使用數據庫 在C#代碼中使用ADO.NET的第一步就是引用System.Data命名空間,該命名空

16、間中含有所有的ADO.NET類。接著,需要根據數據源的類型不同,而引用相應的數據提供者。l SQL Server .NET數據提供者:SQL Server數據庫,使用using指令引用System.Data.SqlClient。l Oracle .NET 數據提供者:Oracle數據庫,內置Oracle .NET驅動程序是最佳選擇,System.Data.OracleClient;另外,Oracle本身也提供了一個.NET 數據提供者,Oracle.DataAccess.Clientl OLE DB .NET提供者: Microsoft Access,System.Data.OleDbl OD

17、BC .NET數據提供者:如果數據源沒有內置的或OLE DB提供者,則可以使用ODBC.NET數據提供者System.Data.Odbcl 其他內置的.NET 數據提供者:如果數據庫有專用的內置.NET 數據提供者,就可以使用它14.3.1創建數據庫創建數據庫 創建數據庫可以使用Sqlcmd命令來完成。SDK 示例所使用的 SQL Server Express 實例的名稱是“SQLExpress”。要訪問該數據庫,請使用服務器名稱:(local)SQLExpress。 sqlcmd -S (local)SQLExpress -E -d 為了知道自己計算機名稱(local),可以在運行sqlcm

18、d命令之前先在命令提示窗口中運行一下hostname命令。14.3.2 DataGridView控件控件 DataGridView控件使程序員可在自定義的網格中顯示數據。 DataGridView控件主要屬性控件主要屬性lReadOnly:該值指示用戶是否可以編輯 System.Windows.Forms.DataGridView 控件的單元格。lDataSource:獲取或設置 System.Windows.Forms.DataGridView 所顯示數據的數據源。lDataMember:獲取或設置數據源中 System.Windows.Forms.DataGridView 顯示其數據的列表

19、或表的名稱。lCurrentRow:獲取包含當前單元格的行。14.3.2 DataGridView控件控件 BindingSource類是和類是和DataGridView控件經常配合控件經常配合使用的一個類。使用的一個類。BindingSource類的主要屬性如下:類的主要屬性如下:lpublic object DataSource get; set; :獲取或設:獲取或設置連接器綁定到的數據源。返回結果:作為數據源置連接器綁定到的數據源。返回結果:作為數據源的的 System.Object。默認為。默認為null。lpublic string DataMember get; set; : 獲

20、取或獲取或設置連接器當前綁定到的數據源中的特定列表。返設置連接器當前綁定到的數據源中的特定列表。返回結果:回結果: System.Windows.Forms.BindingSource.DataSource 中的列表(或行)的名稱。默認值為空字符串。中的列表(或行)的名稱。默認值為空字符串。14.3.3使用數據窗體向導使用數據窗體向導完成數據庫訪問完成數據庫訪問 使用數據窗體向導創建簡單數據庫應用程序使用數據窗體向導創建簡單數據庫應用程序是快捷簡便的途徑,用戶僅需要按向導提示是快捷簡便的途徑,用戶僅需要按向導提示回答若干問題,即可生成一個具有基本數據回答若干問題,即可生成一個具有基本數據庫管理

21、功能的應用程序。以創建一個處理數庫管理功能的應用程序。以創建一個處理數據庫據庫Noethwind.dbo的數據庫應用程序了解的數據庫應用程序了解數據庫窗體向導的創建。數據庫窗體向導的創建。l創建數據源創建數據源 l預覽數據預覽數據 l在應用程序中顯示數據在應用程序中顯示數據 14.3.4 使用DataReader完成數據庫訪問完成數據庫訪問 使用DataReader讀取數據的過程如下:(1)連接數據源;(2)打開連接;(3)執行SQL查詢命令。(4)使用DataReader讀取并顯示數據。(5)關閉DataReader和連接。14.4數據綁定數據綁定 數據綁定就是將一個控件的屬性與一個數據源連

22、接起來。大多數Windows窗體控件的屬性都可以連接或綁定到一個數據源。一經綁定,數據源中值就會改變綁定的控件的屬性,反之亦然。 Windows窗體控件支持兩種類型的數據綁定:簡單綁定和復雜綁定。簡單數據綁定允許你將將一個控件或窗體的屬性綁定到數據源中的單個值。而復雜數據綁定專門用于將一個控件連接到一系列的值。簡單數據綁定適合只顯示一個值的控件,如Label 、Text等之類的控件。復雜數據綁定適合能顯示多個值的控件,如:ListBox、CheckedListBox、ComboBox、和 DataGridView等。14.4數據綁定數據綁定 在常用控件中,往往要使用數據綁定實現數據庫應用程序的

23、開發。實現數據綁定的一般步驟如下:l 無論是簡單數據綁定,還是復雜數據綁定,要實現數據綁定的第一步就是就是要連接數據庫,得到可以操作的DataSet。l 根據不同組件,采用不同的數據綁定。 使用數據集對象 DataSet是ADO.NET中的核心對象,所有復雜的操作都是使用它來完成的。DataSet包含一組DataTable對象,表示所操作的數據庫表。每個DataTable對象又都有一些子對象:DataRow和DataColumn,表示數據庫表中的行和列。通過這些對象可以獲取表、行和列中的所有元素。 l為應用程序添加數據源l添加綁定控件l將控件與數據源綁定的方法就是通過“屬性”窗口,修改控件的“

24、Data Source”屬性14.5 修改數據庫 修改數據庫可以使用DataSet來完成,也可以使用編程的方法去完成。 14.5 修改數據庫 1使用使用DataSet修改數據庫修改數據庫 對數據庫的修改操作可以用相同的模式完成:(1)用數據庫中要使用的數據填充數據集DataSet。(2)修改存儲在DataSet中的數據,例如,更新、插入和刪除記錄。(3)完成了所有的修改操作后,把DataSet中所作的修改更新到數據庫中。14.5 修改數據庫 2結構化查詢語言結構化查詢語言SQL(Structured Query Language,結構化查詢語言)是操作所有關系型數據庫的標準語言。其常用主要命令如下。讀取表格內容:SELECT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論