數據庫應用程序設計_第1頁
數據庫應用程序設計_第2頁
數據庫應用程序設計_第3頁
數據庫應用程序設計_第4頁
數據庫應用程序設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第14章 數據庫應用程序設計教學目標 本章介紹了如何使用C#訪問關系數據庫。討論ADO.NET的結構以及如何使應ADO.NET訪問關系數據庫,通過本章的學習,讀者應掌握C#的數據庫編程,能夠編寫C#程序訪問各種常見的數據庫類型 。絕大多數軟件系統都需要有數據庫的支持,因此數據庫編程也是每一個開發(fā)者應該掌握的。 教學重點lADO.NET概述l.NET數據提供者lDataSet數據集l使用數據庫l數據綁定 14.1 ADO.NET概述概述 數據庫的訪問是所有編程語言中最重要的部分,C#提供了ADO.Net部件用于對數據庫進行訪問。 1.ADO.NET是美國微軟公司最新推出.NET平臺中的一種數據訪

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

3、程序在與數據庫斷開的情況下進行操作)的數據訪問。 14.1.1 ADO.NET架構 ADO.NET架構的兩個主要組件:lData Provider(數據提供者)lDataSet(數據集) 14.1.2 .NET Framework數據提供數據提供程序程序 1. .NET Framework有四種數據提供程序,用于訪問不同類型的數據源。lSQL Server .NET Framework數據提供程序。lOLE DB .NET Framework數據提供程序。lODBC .NET Framework數據提供程序。lOracle .NET Framework數據提供程序。14.1.2 .NET Fr

4、amework數據提供數據提供程序程序 2. .NET Data Provider核心類核心類.NET Framework數據提供程序包括四個核心對象,用于實現對數據庫的數據處理。Connection:建立與特定數據源的連接Command:用來執(zhí)行對數據源進行各種操作的SQL命令DataReader:以只能向前的、只讀的數據流方式接收Command對象的ExecuteReader方法返回的數據。DataAdapter:是DataSet和數據源之間交換數據的橋梁 若訪問Access數據庫,上述4個對象分別表示為:OleDbConnectionOleDbCommandOleDbDataReader

5、OleDbDataAdapter 14.1.3 DataSet數據集數據集 ADO.NET的一個比較突出的特點是支持離線訪問,即在非連接環(huán)境下對數據進行處理,DataSet是支持離線訪問的關鍵對象,它將數據存儲在緩存中。DataSet對象不關心數據源的類型,它將信息以表的形式存放。DataSet對象是非連接存儲和處理關系的基礎。 14.2 ADO.NET對象 ADO.NET類之間的關系 數據提供者對象 提供者對象就是指在每一個.NET數據提供者中定義的對象。 l連接對象l命令對象 lCommandBuilder對象 lDataReader對象lDataAdapter對象 14.2.1 Conn

6、ection對象對象 在C#.NET中,通過Connection對象實現數據連接,并且在使用過程中,根據不同的數據庫的類型使用不同的Connection控件。在ADO.NET Connection 類中有兩個子類,一個是SqlConnection;另一個是OleDbConnection。 14.2.1 Connection對象對象 在C#.NET中,通過Connection對象實現數據連接,并且在使用過程中,根據不同的數據庫的類型使用不同的Connection控件。在ADO.NET Connection 類中有兩個子類,一個是SqlConnection;另一個是OleDbConnection。

7、 14.2.1 Connection對象對象 1.Connection對象常用屬性有:lConnectionString屬性:用來指定要連接的數據源。在ConnectionString屬性中,需要使用很多參數。如:Data Source用來指明數據源;Initial Catalog用來指明數據庫;Integrated Security用來指明集成安全等。lConnectionTimeout屬性:返回結果為等待連接打開的時間(以秒為單位)。默認值為 15 秒。lDatabase屬性:獲取當前數據庫或連接打開后要使用的數據庫的名稱。返回結果:當前數據庫的名稱或連接打開后要使用的數據庫的名稱。默認值

8、為空字符串。lDataSource屬性:獲取要連接的數據源實例的名稱。 14.2.1 Connection對象對象 2. Connection對象常用方法對象常用方法 Connection對象最常用的方法有Open和Close方法。lOpen()方法:該方法用于打開由ConnectionString屬性指定的數據源連接。lClose方法():該方法用于斷開由ConnectionString屬性指定的數據源連接。 14.2.1 Connection對象對象 3. Connection對象的創(chuàng)建對象的創(chuàng)建 創(chuàng)建一個SqlConnection對象的編程方法如下:String connectionSt

9、ring=DataSource=yangjianjunSQLExpress;Provide=SQLOLEDB.1;Initial Catalog=Northwind;Integrated Security=True;SqlConnection con = new SqlConnection();con.ConnectionString = connectionString;OleDbConnection對象的創(chuàng)建方法和SqlConnection對象的創(chuàng)建方法類似。例如:OleDbConnection con = new OleDbConnection ();也可以通過控件來創(chuàng)建也可以通過控件來

10、創(chuàng)建Connection對象對象 。14.2.2 Command對象對象 通過編程的方法(也可以通過控件來創(chuàng)建)創(chuàng)建一個Command對象:SqlCommand cmd = new SqlCommand ();或OleDbCommand cmd = new OleDbCommand();常用屬性:lCommandText:獲取或設置對數據源執(zhí)行的SQL語句,默認為空串。lCommandTimeout:獲取或設置在終止執(zhí)行命令的嘗試并生成錯誤之前的等待時間。lCommandType:獲取或設置一個值,該值指示如何解釋CommandText屬性,默認為Text.lConnection:獲取或設置C

11、ommand對象使用的Connection對象的名稱,默認為null。14.2.2 Command對象對象常用方法:lExecuteNonQuery():該方法主要用于執(zhí)行除Select查詢以外(如Update、Insert、Delete)的SQL命令。返回值為該命令所影響的記錄行數。lExecuteReader():對連接對象執(zhí)行SQL查詢語句,返回一個DataReader對象 。lExecuteScalar():對連接對象執(zhí)行SQL語句,返回結果值。14.2.3 DataReader對象對象 DataReader對象用于對數據庫的操作。在ADO.NET DataReader類中有兩個子類,

12、一個是SqlDataReader類;另一個是OleDbDataReader類。 通過編程的方法創(chuàng)建一個DataReader對象:SqlDataReader reader = Command.ExecuteReader();或OleDbDataReader reader = Command.ExecuteReader(); 14.3 使用數據庫 在C#代碼中使用ADO.NET的第一步就是引用System.Data命名空間,該命名空間中含有所有的ADO.NET類。接著,需要根據數據源的類型不同,而引用相應的數據提供者。lSQL Server .NET數據提供者:SQL Server數據庫,使用us

13、ing指令引用System.Data.SqlClient。lOracle .NET 數據提供者:Oracle數據庫,System.Data.OracleClient;另外,Oracle本身也提供了一個.NET 數據提供者,Oracle.DataAccess.ClientlOLE DB .NET提供者: Microsoft Access,System.Data.OleDblODBC .NET數據提供者:如果數據源沒有內置的或OLE DB提供者,則可以使用ODBC.NET數據提供者System.Data.Odbcl其他內置的.NET 數據提供者:如果數據庫有專用的內置.NET 數據提供者,就可以使

14、用它14. 3.1 使用DataReader完成數據庫訪問完成數據庫訪問 使用DataReader讀取數據的過程如下:(1)連接數據源;(2)打開連接;(3)執(zhí)行SQL查詢命令。(4)使用DataReader讀取并顯示數據。(5)關閉DataReader和連接。示例:示例:Ex14-1、 Ex14-2(控件控件)、 WindowsApplication2:Ex14-4(代碼代碼)數據綁定數據綁定 數據綁定就是將一個控件的屬性與一個數據源連接起來。大多數Windows窗體控件的屬性都可以連接或綁定到一個數據源。一經綁定,數據源中值就會改變綁定的控件的屬性,反之亦然。 Windows窗體控件支持兩

15、種類型的數據綁定:簡單綁定和復雜綁定。簡單數據綁定允許你將將一個控件或窗體的屬性綁定到數據源中的單個值。而復雜數據綁定專門用于將一個控件連接到一系列的值。簡單數據綁定適合只顯示一個值的控件,如Label 、Text等之類的控件。復雜數據綁定適合能顯示多個值的控件,如:ListBox、CheckedListBox、ComboBox、和 DataGridView等。數據綁定數據綁定 在常用控件中,往往要使用數據綁定實現數據庫應用程序的開發(fā)。實現數據綁定的一般步驟如下:l 無論是簡單數據綁定,還是復雜數據綁定,要實現數據綁定的第一步就是就是要連接數據庫,得到可以操作的DataSet。l 根據不同組件

16、,采用不同的數據綁定。 14.3.2 DataGridView控件控件 DataGridView控件使程序員可在自定義的網格中顯示數據。 DataGridView控件主要屬性控件主要屬性lReadOnly:該值指示用戶是否可以編輯 System.Windows.Forms.DataGridView 控件的單元格。lDataSource:獲取或設置 System.Windows.Forms.DataGridView 所顯示數據的數據源。lDataMember:獲取或設置數據源中 System.Windows.Forms.DataGridView 顯示其數據的列表或表的名稱。lCurrentRow

17、:獲取包含當前單元格的行。14.3.2 DataGridView控件控件 BindingSource類類是和是和DataGridView控件經常配合控件經常配合使用的一個類。使用的一個類。BindingSource類的主要屬性如下:類的主要屬性如下:lDataSource :獲取或設置連接器綁定到的數據源。:獲取或設置連接器綁定到的數據源。返回結果:作為數據源的返回結果:作為數據源的 System.Object。默認為。默認為null。lDataMember : 獲取或設置連接器當前綁定到的數獲取或設置連接器當前綁定到的數據源中的特定列表。返回結果:據源中的特定列表。返回結果: System.

18、Windows.Forms.BindingSource.DataSource 中的列表(或表)的名稱。默認值為空字符串。中的列表(或表)的名稱。默認值為空字符串。示例:示例:Ex14-3(操作步驟附后)(操作步驟附后)Ex14-3操作步驟:操作步驟:1.創(chuàng)建數據源:【數據】|【添加數據源】2.添加DataGridView控件,設置其數據源(如果直接選擇表txb,則3、4不可省略);3.添加OleDbDataAdapter控件,生成相應的數據集;4.將BindingSource對象(默認名為testDataSetBindingSource)的DataMember屬性設為txb;5.運行程序。14

19、.3.3 DataAdapter對象對象 DataAdapter是ADO.NET新增加的對象。在ADO.NET DataAdapter類中有兩個子類,一個是SqlDataAdapter類;另一個是OleDbDataAdapter類。 DataAdapter對象包含有SelectCommand、InsertCommand、UpdateCommand和DelectCommand四個屬性,用來定義處理數據存儲中數據的命令,并且每個命令都是對Command對象的一個引用,可以共享同一個數據源。 14.3.3 DataAdapter對象對象 DataAdapter對象常用的方法主要有:1.Fill():

20、該方法用于執(zhí)行SelectCommand,用數據源的數據填充DataSet對象。2.GetData():新建一個數據集中的DataTable并填充它。3.Update():更新數據集中的某個DataTable。通過編程的方法創(chuàng)建一個DataAdapter對象:SqlDataAdapter dataAdapter = new SqlDataAdapter ();或OleDbDataAdapter dataAdapter = new OleDbDataAdapter (); 14.4 數據集對象 數據集對象位于System.Data命名空間中,用于定義ADO.NET的斷開的、客戶端的對象,包括Da

21、taSet、DataTable、DataRow、DataColumn和DataRelation等 lDataSet是數據集對象中的首要對象,此對象表示一組相關表 lDataTable對象代表DataSet中的一個表 lDataTable對象的Rows和Columns分別是DataRow和DataColumn對象,可用于訪問DataTable表中的行和列 lDataRelation對象代表通過共享列而發(fā)生關系的兩個表之間的關系 14. 4 數據集對象 DataSet對象的創(chuàng)建可以通過工具欄中的控件實現;通過菜單“數據”|“添加新數據源”來實現;或者選擇DataAdapter對象,單擊右上角的黑三

22、角(智能標記),在下拉表中選擇“生成數據集” 。 14. 4 數據集對象 填充填充DataSet對象:對象: DataSet對象是一個必須填充的容器,填充方法有多種:調用DataAdapter的Fill方法、手工填充、復制或合并其它DataSet的數據。我們這里介紹使用DataAdapter的Fill方法填充DataSet對象。使用數據集對象 DataSet是ADO.NET中的核心對象,所有復雜的操作都是使用它來完成的。DataSet包含一組DataTable對象,表示所操作的數據庫表。每個DataTable對象又都有一些子對象:DataRow和DataColumn,表示數據庫表中的行和列。通

23、過這些對象可以獲取表、行和列中的所有元素。 l為應用程序添加數據源l添加綁定控件l將控件與數據源綁定的方法就是通過“屬性”窗口,修改控件的“Data Source”屬性14.5 修改數據庫 修改數據庫可以使用DataSet來完成,也可以使用編程的方法去完成。 14.5 修改數據庫 1使用使用DataSet修改數據庫修改數據庫 對數據庫的修改操作可以用相同的模式完成:(1)用數據庫中的數據填充數據集DataSet。(2)修改存儲在DataSet中的數據,例如,更新、插入和刪除記錄。(3)完成了所有的修改操作后,把DataSet中所作的修改更新到數據庫中。14.5 修改數據庫 2結構化查詢語言結構化查詢語言SQL(Structured Query Language,結構化查詢語言)是操作所有關系型數據庫的標準語言。其常用主要命令如下。讀取表格內容:SELECT * FROM tableName向表格插入一條記錄:INSERT INTO table1 VALUES(字段值1,字段值2,)查詢滿足特定條件的

溫馨提示

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

評論

0/150

提交評論