第19章在程序中訪問數(shù)據(jù)庫_第1頁
第19章在程序中訪問數(shù)據(jù)庫_第2頁
第19章在程序中訪問數(shù)據(jù)庫_第3頁
第19章在程序中訪問數(shù)據(jù)庫_第4頁
第19章在程序中訪問數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 19.1 ADO.NET與與.NET 19.2 ADO.NET與與ADO 19.3 深入深入ADO.NET 19.4 數(shù)據(jù)控件數(shù)據(jù)控件 19.5 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件 19.6 小結(jié)小結(jié)19.1 ADO.NET與.NETADO.NET由微軟公司推出,基于由微軟公司推出,基于.NET平臺,平臺,面向分布式,是以面向分布式,是以XML數(shù)據(jù)格式為核心的數(shù)據(jù)格式為核心的一種數(shù)據(jù)庫訪問技術(shù),其主要特點(diǎn)如下。一種數(shù)據(jù)庫訪問技術(shù),其主要特點(diǎn)如下。ADO.NET是是.NET框架中非常重要的一部分,框架中非常重要的一部分,且且ADO.NET必須在必須在.NET框架支持下才能運(yùn)行??蚣苤С窒虏拍苓\(yùn)行。XML

2、是是ADO.NET的基礎(chǔ),即從數(shù)據(jù)源里獲取的基礎(chǔ),即從數(shù)據(jù)源里獲取的數(shù)據(jù)都是以的數(shù)據(jù)都是以XML格式保存。格式保存。ADO.NET的主要功能就是提供數(shù)據(jù)訪問類。的主要功能就是提供數(shù)據(jù)訪問類。19.1 ADO.NET與.NET ADO.NET體系結(jié)構(gòu)體系結(jié)構(gòu) 19.2 ADO.NET與ADO19.2.1 ADO概述概述數(shù)據(jù)訪問方式的發(fā)展階段:數(shù)據(jù)訪問方式的發(fā)展階段:ODBC(Open Database Connectivity)OLEDB(Object Linking and Embedding Database)ADO(ActiveX Data Objects)ADO的常用的常用3個(gè)對象如下。

3、個(gè)對象如下。Connection對象對象Command對象對象Recordset對象對象19.2.1 ADO概述典型的典型的ADO對象編程步驟:對象編程步驟:連接到數(shù)據(jù)源。連接到數(shù)據(jù)源。指定訪問數(shù)據(jù)源的命令,可以同時(shí)指定變量參指定訪問數(shù)據(jù)源的命令,可以同時(shí)指定變量參數(shù),通常會涉及到數(shù),通常會涉及到Command對象。對象。執(zhí)行命令,如果命令使數(shù)據(jù)按表中行的形式返執(zhí)行命令,如果命令使數(shù)據(jù)按表中行的形式返回,則將這些數(shù)據(jù)存儲在易于檢查、操作或更回,則將這些數(shù)據(jù)存儲在易于檢查、操作或更改的緩存改的緩存Recordset中。中。在適當(dāng)情況下,可以通過修改緩存行的內(nèi)容來在適當(dāng)情況下,可以通過修改緩存行的

4、內(nèi)容來更新數(shù)據(jù)源。更新數(shù)據(jù)源。結(jié)束操作,釋放數(shù)據(jù)連接結(jié)束操作,釋放數(shù)據(jù)連接Connection和內(nèi)存和內(nèi)存中的緩存中的緩存Recordset,關(guān)閉操作命令,關(guān)閉操作命令Command。19.2.2 ADO.NET與ADO的關(guān)系 ADO與與ADO.NET既相似也有區(qū)別,它們的相似之處是都既相似也有區(qū)別,它們的相似之處是都能夠編寫對數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)進(jìn)行訪問和操作的應(yīng)用能夠編寫對數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)進(jìn)行訪問和操作的應(yīng)用程序,并且易使用、高速度、低內(nèi)存消耗且占用磁盤空間程序,并且易使用、高速度、低內(nèi)存消耗且占用磁盤空間較少,支持建立基于客戶端較少,支持建立基于客戶端/服務(wù)器和服務(wù)器和Web的應(yīng)用程

5、序的的應(yīng)用程序的功能。它們的主要區(qū)別如下。功能。它們的主要區(qū)別如下。 ADO使用使用OLE DB接口并基于微軟的接口并基于微軟的COM技術(shù),而技術(shù),而ADO.NET擁擁有自己的有自己的ADO.NET接口并且基于微軟的接口并且基于微軟的.NET體系架構(gòu)。體系架構(gòu)。 ADO以以Recordset存儲,而存儲,而ADO.NET則以則以DataSet表示。表示。 總之,由于總之,由于ADO使用使用COM技術(shù),這就要求所使用的數(shù)據(jù)技術(shù),這就要求所使用的數(shù)據(jù)類型必須符合類型必須符合COM規(guī)范,而規(guī)范,而ADO.NET基于基于XML格式,格式,XML靈活多變的基于文本的結(jié)構(gòu)使得它能夠應(yīng)用于相當(dāng)廣靈活多變的基

6、于文本的結(jié)構(gòu)使得它能夠應(yīng)用于相當(dāng)廣泛的網(wǎng)絡(luò)作業(yè),并且不需要再做泛的網(wǎng)絡(luò)作業(yè),并且不需要再做COM編排導(dǎo)致的數(shù)據(jù)類編排導(dǎo)致的數(shù)據(jù)類型轉(zhuǎn)換,從而提高了平臺互用性和整體性能。型轉(zhuǎn)換,從而提高了平臺互用性和整體性能。19.3 深入ADO.NET 19.3.1 .NET數(shù)據(jù)提供程序數(shù)據(jù)提供程序 .NET Framework數(shù)據(jù)提供程序用于連接數(shù)據(jù)提供程序用于連接到數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果。到數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果。.NET Framework提供了如下幾個(gè)提供了如下幾個(gè).NET Framework數(shù)據(jù)提供程序。數(shù)據(jù)提供程序。 OLE DB .NET Framework數(shù)據(jù)提供程序。數(shù)據(jù)提供程序。

7、SQL Server .NET Framework數(shù)據(jù)提供程序。數(shù)據(jù)提供程序。 ODBC .NET Framework數(shù)據(jù)提供程序。數(shù)據(jù)提供程序。 Oracle .NET Framework數(shù)據(jù)提供程序。數(shù)據(jù)提供程序。19.3.1 .NET數(shù)據(jù)提供程序.NET Framework數(shù)據(jù)提供程序提供了數(shù)據(jù)提供程序提供了4個(gè)核心類,個(gè)核心類,這這4個(gè)核心類其功能如下。個(gè)核心類其功能如下。Connection類:建立與特定數(shù)據(jù)源的連接。類:建立與特定數(shù)據(jù)源的連接。Command類:對數(shù)據(jù)源執(zhí)行數(shù)據(jù)庫命令,用于返回類:對數(shù)據(jù)源執(zhí)行數(shù)據(jù)庫命令,用于返回?cái)?shù)據(jù)、修改數(shù)據(jù)、運(yùn)行存儲過程以及發(fā)送或檢索參數(shù)數(shù)據(jù)、修

8、改數(shù)據(jù)、運(yùn)行存儲過程以及發(fā)送或檢索參數(shù)信息等。信息等。DataReader類:從數(shù)據(jù)源中讀取只向前的只讀數(shù)據(jù)流,類:從數(shù)據(jù)源中讀取只向前的只讀數(shù)據(jù)流,它是一個(gè)簡易的數(shù)據(jù)流。它是一個(gè)簡易的數(shù)據(jù)流。DataAdapter類:用于將數(shù)據(jù)源的數(shù)據(jù)填充至類:用于將數(shù)據(jù)源的數(shù)據(jù)填充至DataSet數(shù)據(jù)集并解析更新數(shù)據(jù)集。可以說,數(shù)據(jù)集并解析更新數(shù)據(jù)集??梢哉f,DataAdpater類類是是.NET數(shù)據(jù)提供程序與數(shù)據(jù)提供程序與DataSet之間的一座橋梁。之間的一座橋梁。19.3.2 Connection類Connection類用于連接數(shù)據(jù)庫,也可使用類用于連接數(shù)據(jù)庫,也可使用Command類,它會隱含創(chuàng)建

9、一個(gè)類,它會隱含創(chuàng)建一個(gè)Connection對象。對象。在使用在使用Connection類時(shí),一般可以使用無類時(shí),一般可以使用無參數(shù)的構(gòu)造函數(shù)創(chuàng)建參數(shù)的構(gòu)造函數(shù)創(chuàng)建Connection類實(shí)例,類實(shí)例,然后設(shè)置然后設(shè)置ConnectionString屬性,也可以屬性,也可以直接使用帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建直接使用帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建Connection類實(shí)例。類實(shí)例。 19.3.2 Connection類示例:示例:使用無參數(shù)的構(gòu)造函數(shù)來創(chuàng)建使用無參數(shù)的構(gòu)造函數(shù)來創(chuàng)建Connection對象,對象,其語法形式如下。其語法形式如下。string str = Data Source=localhost;

10、Initial Catalog=book;Persist Security Info=True;User ID=admin;Password=123; SqlConnection sqlcon = new SqlConnection();Sqlcon. ConnectionString= str;利用帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建利用帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建SqlConnection實(shí)例,實(shí)例,其語法形式如下。其語法形式如下。string str = Data Source=localhost;Initial Catalog=book;Persist Security Info=True;User ID=a

11、dmin;Password=123; SqlConnection sqlcon = new SqlConnection(str);19.3.2 Connection類SqlConnection連接字符串中各項(xiàng)的意義如下。連接字符串中各項(xiàng)的意義如下。Data Source:設(shè)置要連接的:設(shè)置要連接的SQL Server實(shí)例所在的實(shí)例所在的服務(wù)器名或網(wǎng)絡(luò)地址,服務(wù)器名或網(wǎng)絡(luò)地址,localhost表示本機(jī)。表示本機(jī)。Initial Catalog:設(shè)置要連接的數(shù)據(jù)庫名。:設(shè)置要連接的數(shù)據(jù)庫名。Persist Security Info:表示是否保存安全信息。:表示是否保存安全信息。User ID:

12、設(shè)置數(shù)據(jù)庫訪問者的姓名。:設(shè)置數(shù)據(jù)庫訪問者的姓名。PassWord:設(shè)置數(shù)據(jù)庫訪問者的密碼。:設(shè)置數(shù)據(jù)庫訪問者的密碼。Connection對象的常用方法如下。對象的常用方法如下。Open()方法:建立數(shù)據(jù)庫連接。當(dāng)創(chuàng)建完方法:建立數(shù)據(jù)庫連接。當(dāng)創(chuàng)建完Connection對象之后,應(yīng)調(diào)用對象之后,應(yīng)調(diào)用Open()方法才能建立數(shù)據(jù)庫連接。方法才能建立數(shù)據(jù)庫連接。Close()方法:斷開數(shù)據(jù)庫連接。當(dāng)數(shù)據(jù)庫連接使用完方法:斷開數(shù)據(jù)庫連接。當(dāng)數(shù)據(jù)庫連接使用完畢后,應(yīng)調(diào)用畢后,應(yīng)調(diào)用Close()方法及時(shí)斷開數(shù)據(jù)庫連接。方法及時(shí)斷開數(shù)據(jù)庫連接。19.3.3 Command類 Command類用于完成對

13、數(shù)據(jù)源的各種操作,包括查詢、插入、刪除、類用于完成對數(shù)據(jù)源的各種操作,包括查詢、插入、刪除、更新操作??梢允褂酶虏僮鳌?梢允褂肧QL語句來完成這些操作。語句來完成這些操作。 示例:示例: 使用無參數(shù)構(gòu)造函數(shù)來創(chuàng)建使用無參數(shù)構(gòu)造函數(shù)來創(chuàng)建SqlCommand對象,例如下列代碼。對象,例如下列代碼。SqlCommand command = new SqlCommand();command.CommandType = CommandType.Text;command.Connection=myconn; 使用帶參數(shù)構(gòu)造函數(shù)創(chuàng)建使用帶參數(shù)構(gòu)造函數(shù)創(chuàng)建SqlCommand對象,參數(shù)為查詢對象,參數(shù)為查

14、詢Sql語句,語句,而且只能是查詢語句,例如下列代碼。而且只能是查詢語句,例如下列代碼。string sqlstr = select * from book;SqlCommand command = new SqlCommand(sqlstr);command.CommandType = CommandType.Text;command.Connection=myconn; 使用帶參數(shù)構(gòu)造函數(shù)創(chuàng)建使用帶參數(shù)構(gòu)造函數(shù)創(chuàng)建SqlCommand對象,參數(shù)為查詢對象,參數(shù)為查詢Sql語句且語句且只能是查詢語句和只能是查詢語句和SqlConnection對象,例如下列代碼。對象,例如下列代碼。strin

15、g sqlstr = select * from book;SqlCommand command = new SqlComman 19.3.3 Command類 Command對象的常用屬性如下。對象的常用屬性如下。 CommandType屬性:表示如何解釋指令字符串,屬性值為屬性:表示如何解釋指令字符串,屬性值為Text(SQL文本命令,默認(rèn))、文本命令,默認(rèn))、StoredProcedure(存儲過程)。(存儲過程)。 CommandText屬性:當(dāng)屬性:當(dāng)CommandType為為Text時(shí),時(shí),CommandText為為SQL語句;當(dāng)語句;當(dāng)CommandType為為StoredPro

16、cedure時(shí),時(shí),CommandText為存儲過程名稱。為存儲過程名稱。 Connection屬性:表示屬性:表示Command類使用的類使用的Connection對象。對象。 Parameters屬性:該屬性用于表示與屬性:該屬性用于表示與SqlCommand對象相關(guān)聯(lián)對象相關(guān)聯(lián)的參數(shù)的集合。的參數(shù)的集合。 Command對象的常用方法如下。對象的常用方法如下。 ExecuteReader方法:返回方法:返回DataReader對象,包含一個(gè)或多個(gè)對象,包含一個(gè)或多個(gè)行。行。 ExecuteNonQuery方法:執(zhí)行非查詢的方法:執(zhí)行非查詢的SQL語句并返回受影響語句并返回受影響的行數(shù)。的

17、行數(shù)。 ExecuteScalar方法:返回結(jié)果集中第一行的第一列,常用于當(dāng)方法:返回結(jié)果集中第一行的第一列,常用于當(dāng)SQL語句查詢聚合值時(shí),返回聚合值,例如查詢某班的學(xué)生人數(shù)。語句查詢聚合值時(shí),返回聚合值,例如查詢某班的學(xué)生人數(shù)。19.3.3 Command類示例:示例: static void Main(string args) string myConStr = Data Source=localhost;Initial Catalog=stuinfo;Persist Security Info=false;User ID=admin;Password=123; SqlConnectio

18、n myCon = new SqlConnection(myConStr); myCon.Open(); string sql = insert into stutable values(03,王珊王珊,信息信息工程學(xué)院工程學(xué)院); SqlCommand myCom = new SqlCommand(sql, myCon); myCom.CommandType = CommandType.Text; myCom.ExecuteNonQuery(); myCon.Close(); 19.3.4 DataSet類DataSet是物理數(shù)據(jù)庫在本地內(nèi)存中的表示形式,是物理數(shù)據(jù)庫在本地內(nèi)存中的表示形式,

19、通過使用數(shù)據(jù)集可以在無連接的情況下訪問數(shù)據(jù)通過使用數(shù)據(jù)集可以在無連接的情況下訪問數(shù)據(jù)庫。庫。DataSet中包含的數(shù)據(jù)對象及其相互間的關(guān)系:中包含的數(shù)據(jù)對象及其相互間的關(guān)系:數(shù)據(jù)表(數(shù)據(jù)表(DataTable):數(shù)據(jù)源中的數(shù)據(jù)表在內(nèi)存中的):數(shù)據(jù)源中的數(shù)據(jù)表在內(nèi)存中的表示。表示。數(shù)據(jù)列(數(shù)據(jù)列(DataColumn):用于描述):用于描述DataTable中的列中的列(記錄)。(記錄)。數(shù)據(jù)行(數(shù)據(jù)行(DataRow):用于描述):用于描述DataTable中的行中的行(記錄)。(記錄)。表間關(guān)系(表間關(guān)系(DataRelation):表示不同表中兩列數(shù)據(jù)):表示不同表中兩列數(shù)據(jù)間的關(guān)系(如主

20、鍵與外鍵)。間的關(guān)系(如主鍵與外鍵)。約束(約束(Constraint):定義一些在):定義一些在DataTable中添加和中添加和操作數(shù)據(jù)要遵守的規(guī)則。操作數(shù)據(jù)要遵守的規(guī)則。19.3.4 DataSet類填充數(shù)據(jù)集填充數(shù)據(jù)集 調(diào)用調(diào)用DataAdapter對象的對象的Fill方法方法示例:示例:using System.Data.SqlClient;private void Form1_Load(object sender, EventArgs e)string Str = Data Source=localhost;Initial Catalog=book;Persist Security

21、 Info=false;User ID=admin;Password=123; string Sql = select * from information; SqlConnection sqlcon = new SqlConnection(Str); DataSet Mydata = new DataSet(); SqlDataAdapter Myadapter = new SqlDataAdapter(Sql, sqlcon); Myadapter.Fill(Mydata, information); sqlcon.Close(); 19.3.4 DataSet類 訪問數(shù)據(jù)集訪問數(shù)據(jù)集格式

22、格式1:數(shù)據(jù)集對象名:數(shù)據(jù)集對象名.Tables數(shù)據(jù)表名數(shù)據(jù)表名.Rowsn列名列名 格式格式2:數(shù)據(jù)集對象名:數(shù)據(jù)集對象名.Tables數(shù)據(jù)表名數(shù)據(jù)表名.Rowsn.ItemsArrayk 更新數(shù)據(jù)集:對數(shù)據(jù)集的更新包括向數(shù)據(jù)表中添加一行數(shù)更新數(shù)據(jù)集:對數(shù)據(jù)集的更新包括向數(shù)據(jù)表中添加一行數(shù)據(jù)、從數(shù)據(jù)表中刪除一行數(shù)據(jù)及修改數(shù)據(jù)表中的某一條記據(jù)、從數(shù)據(jù)表中刪除一行數(shù)據(jù)及修改數(shù)據(jù)表中的某一條記錄的列值。錄的列值。 更新數(shù)據(jù)源更新數(shù)據(jù)源 :當(dāng)更新數(shù)據(jù)集后,可以通過:當(dāng)更新數(shù)據(jù)集后,可以通過DataAdapter對象的對象的Update()方法同步更新數(shù)據(jù)源。方法同步更新數(shù)據(jù)源。 注意使用注意使用Up

23、date()方法更新數(shù)據(jù)源之前,需要設(shè)置方法更新數(shù)據(jù)源之前,需要設(shè)置DataAdapter對象的命令屬性,包括對象的命令屬性,包括InsertCommand、DeleteCommand和和UpdateCommand,有了這些命令屬性,有了這些命令屬性,DataAdapter對象的對象的Update()方法才會有效,否則會產(chǎn)生異常。方法才會有效,否則會產(chǎn)生異常。 DataReader類用于從數(shù)據(jù)源中檢索只讀、類用于從數(shù)據(jù)源中檢索只讀、只進(jìn)的數(shù)據(jù)流,其最大的特點(diǎn)是只進(jìn)的數(shù)據(jù)流,其最大的特點(diǎn)是DataReader對象以對象以“基于連接基于連接”的方式的方式訪問數(shù)據(jù)庫。訪問數(shù)據(jù)庫。 DataReade

24、r類的常用方法類的常用方法 : Read、 NextResult、 Close、 GetName 、GetString、 GetValues 19.3.5 DataReade類示例:示例: static void Main(string args) string Str = Data Source= localhost;Initial Catalog=book;Persist Security Info=false;User ID=admin;Password=123; SqlConnection Con = new SqlConnection(Str); string comStr = se

25、lect 編號編號,書名書名 from information; SqlCommand Com = new SqlCommand(comStr, Con); Con.Open(); SqlDataReader rd = Com.ExecuteReader(); do Console.WriteLine(n); Console.WriteLine(t0ttt1, rd.GetName(0), rd.GetName(1); while (rd.Read() Console.WriteLine(t0tt1, rd.GetString(0), rd.GetString(1); while (rd.Ne

26、xtResult(); rd.Close(); Con.Close(); Console.Read(); 19.3.5 DataReade類DataAdapter類也稱為數(shù)據(jù)適配器,是類也稱為數(shù)據(jù)適配器,是DataSet和數(shù)據(jù)源之間檢索和保存數(shù)據(jù)的橋梁,用于處理和數(shù)據(jù)源之間檢索和保存數(shù)據(jù)的橋梁,用于處理連接的細(xì)節(jié)。連接的細(xì)節(jié)。DataAdapter既負(fù)責(zé)從數(shù)據(jù)庫中檢既負(fù)責(zé)從數(shù)據(jù)庫中檢索數(shù)據(jù)并填充數(shù)據(jù)集索數(shù)據(jù)并填充數(shù)據(jù)集DataSet,又負(fù)責(zé)將數(shù)據(jù)集,又負(fù)責(zé)將數(shù)據(jù)集DataSet中對數(shù)據(jù)的更改回送到數(shù)據(jù)庫。中對數(shù)據(jù)的更改回送到數(shù)據(jù)庫。DataAdapter對象包含對象包含4個(gè)常用屬性,分別為個(gè)常

27、用屬性,分別為SelectCommand、InsertCommand、UpdateCommand、DeleteCommand。這。這4個(gè)個(gè)屬性均為屬性均為Command對象,對象,DataAdapter通過上通過上述述4個(gè)屬性來對數(shù)據(jù)庫進(jìn)行查詢、插入、更新和個(gè)屬性來對數(shù)據(jù)庫進(jìn)行查詢、插入、更新和刪除操作。上述刪除操作。上述4種對象初始值均為種對象初始值均為null,賦值后,賦值后才能使用。才能使用。19.3.6 DataAdapter類19.3.6 DataAdapter類示例:示例: static void Main(string args) string Str = server=SISS

28、QLEXPRESS;Initial Catalog=book;Persist Security Info=False;User ID=admin;Password=123; SqlConnection conn = new SqlConnection(Str); conn.Open(); string comStr = select * from information; SqlCommand comm = new SqlCommand(comStr, conn); SqlDataAdapter myDA = new SqlDataAdapter(); myDA.SelectCommand =

29、 comm; DataSet myDS = new DataSet(); myDA.Fill(myDS, information); comm.CommandText=DELETE FROM information WHERE 編號編號 = TP0003; myDA.DeleteCommand = comm; myDA.Fill(myDS, information); myDA.Update(myDS, information); conn.Close(); myDS.Dispose(); 19.3.7 ADO.NET原理剖析 ADO.NET的數(shù)據(jù)訪問策略有兩種,一種是將數(shù)據(jù)記錄緩的數(shù)據(jù)訪問策

30、略有兩種,一種是將數(shù)據(jù)記錄緩存于數(shù)據(jù)集(存于數(shù)據(jù)集(Dataset)中;另一種是直接訪問數(shù)據(jù)庫并)中;另一種是直接訪問數(shù)據(jù)庫并使用數(shù)據(jù)讀取器(使用數(shù)據(jù)讀取器(DataReader)來讀取數(shù)據(jù)記錄。)來讀取數(shù)據(jù)記錄。 使用使用ADO.NET開發(fā)數(shù)據(jù)庫應(yīng)用程序的一般步驟如下。開發(fā)數(shù)據(jù)庫應(yīng)用程序的一般步驟如下。 導(dǎo)入相應(yīng)的命名空間。導(dǎo)入相應(yīng)的命名空間。 選擇使用的數(shù)據(jù)源,即確定將使用的選擇使用的數(shù)據(jù)源,即確定將使用的.NET Framework數(shù)據(jù)提供數(shù)據(jù)提供程序。程序。 使用使用Connection對象建立與數(shù)據(jù)源的連接。對象建立與數(shù)據(jù)源的連接。 使用使用Command對象執(zhí)行對數(shù)據(jù)源的操作命令,

31、通常是對象執(zhí)行對數(shù)據(jù)源的操作命令,通常是SQL命令。命令。 使用數(shù)據(jù)集對獲得的數(shù)據(jù)進(jìn)行操作,需使用使用數(shù)據(jù)集對獲得的數(shù)據(jù)進(jìn)行操作,需使用DataReader、DataSet等對象。等對象。 使用各種數(shù)據(jù)控件向用戶顯示數(shù)據(jù)。使用各種數(shù)據(jù)控件向用戶顯示數(shù)據(jù)。19.4 數(shù)據(jù)控件19.4.1 常用的數(shù)據(jù)控件常用的數(shù)據(jù)控件DataSet控件:它是一個(gè)集合對象,可以包含控件:它是一個(gè)集合對象,可以包含任意數(shù)量的表和視圖,還可以包含所有表的約任意數(shù)量的表和視圖,還可以包含所有表的約束、索引、關(guān)系及存儲過程等。束、索引、關(guān)系及存儲過程等。BindingSource控件:主要用于連接數(shù)據(jù)庫,控件:主要用于連接數(shù)

32、據(jù)庫,通過該控件,可以將所有通過該控件,可以將所有Windows窗體控件綁窗體控件綁定到數(shù)據(jù)源。定到數(shù)據(jù)源。BindingNavigator控件:綁定數(shù)據(jù)源后,可以控件:綁定數(shù)據(jù)源后,可以實(shí)現(xiàn)數(shù)據(jù)導(dǎo)航。實(shí)現(xiàn)數(shù)據(jù)導(dǎo)航。DataGridView控件:主要用于顯示后臺數(shù)據(jù)控件:主要用于顯示后臺數(shù)據(jù)庫的數(shù)據(jù),通常以瀏覽表格顯示庫的數(shù)據(jù),通常以瀏覽表格顯示。19.4.2 數(shù)據(jù)源控件BindingSource控件其實(shí)并不是真正控件其實(shí)并不是真正意義上的數(shù)據(jù)源,而是窗體控件和數(shù)意義上的數(shù)據(jù)源,而是窗體控件和數(shù)據(jù)源之間的橋梁,其主要功能為將窗據(jù)源之間的橋梁,其主要功能為將窗體中的控件綁定到數(shù)據(jù)源上。體中的控件

33、綁定到數(shù)據(jù)源上。 19.5 數(shù)據(jù)綁定控件 19.5.1 數(shù)據(jù)綁定控件概述數(shù)據(jù)綁定控件概述 數(shù)據(jù)綁定就是使控件與數(shù)據(jù)源的數(shù)據(jù)綁定在一起,便于數(shù)數(shù)據(jù)綁定就是使控件與數(shù)據(jù)源的數(shù)據(jù)綁定在一起,便于數(shù)據(jù)訪問,而控件可以綁定到幾乎所有包含數(shù)據(jù)的結(jié)構(gòu),且據(jù)訪問,而控件可以綁定到幾乎所有包含數(shù)據(jù)的結(jié)構(gòu),且可以通過綁定的數(shù)據(jù)設(shè)置控件的任何屬性。數(shù)據(jù)綁定可分可以通過綁定的數(shù)據(jù)設(shè)置控件的任何屬性。數(shù)據(jù)綁定可分為簡單數(shù)據(jù)綁定和復(fù)雜數(shù)據(jù)綁定。為簡單數(shù)據(jù)綁定和復(fù)雜數(shù)據(jù)綁定。 簡單數(shù)據(jù)綁定指將一個(gè)控件綁定到單個(gè)數(shù)據(jù)元素,通常綁簡單數(shù)據(jù)綁定指將一個(gè)控件綁定到單個(gè)數(shù)據(jù)元素,通常綁定到數(shù)據(jù)庫的某一個(gè)字段。支持簡單數(shù)據(jù)綁定的控件有定到數(shù)據(jù)庫的某一個(gè)字段。支持簡單數(shù)據(jù)綁定的控件有TextBox控件、控件、Label控件等只顯示單個(gè)值的控件??丶戎伙@示單個(gè)值的控件。 復(fù)雜數(shù)據(jù)綁定指將一個(gè)控件綁定到多個(gè)數(shù)據(jù)元素,通常綁復(fù)雜數(shù)據(jù)綁定指將一個(gè)控件綁定到多個(gè)數(shù)據(jù)元素,通常綁定到數(shù)據(jù)庫中的多條記錄,或綁定到多個(gè)其他任意類型的定到數(shù)據(jù)庫中的多條記錄,或綁定到多個(gè)其他任意類型的可綁定數(shù)據(jù)元素。支持復(fù)雜數(shù)據(jù)綁定的控件有可綁定數(shù)據(jù)元素。支持復(fù)雜數(shù)據(jù)綁定的控件有DataGirdView控件、控件、ListBox控件、控件

溫馨提示

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

評論

0/150

提交評論