SQL Server編程訪問技術(shù)(20110601).ppt_第1頁
SQL Server編程訪問技術(shù)(20110601).ppt_第2頁
SQL Server編程訪問技術(shù)(20110601).ppt_第3頁
SQL Server編程訪問技術(shù)(20110601).ppt_第4頁
SQL Server編程訪問技術(shù)(20110601).ppt_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學習情境7 SQL Server編程訪問技術(shù),情境引入,在.NET環(huán)境下利用C#語言編寫應(yīng)用程序,則需要特定的數(shù)據(jù)庫訪問技術(shù),如ODBC、OLEDB、DAO、ADO.NET,其中, ADO.NET 是目前流行的.NET 平臺上的數(shù)據(jù)庫訪問技術(shù)。,本情境學習目標,掌握ADO.NET的基本體系結(jié)構(gòu) 掌握ADO.NET對常見數(shù)據(jù)庫進行訪問的方法 掌握在C#中進行一般的數(shù)據(jù)庫調(diào)用方法,本情境工作任務(wù),ADO.NET數(shù)據(jù)提供程序及使用 ADO.NET數(shù)據(jù)集及應(yīng)用 數(shù)據(jù)綁定,工作任務(wù)1 ADO.NET數(shù)據(jù)提供程序及使用,一、相關(guān)資訊,1、ADO.NET概述 ADO.NET(ActiveX Data Obj

2、ects.NET)是微軟公司開 發(fā)的訪問數(shù)據(jù)庫的新接口,其實質(zhì)是一組向.NET程序員公 開數(shù)據(jù)訪問服務(wù)的類,為創(chuàng)建分布式數(shù)據(jù)共享應(yīng)用程序提供 了一組豐富的組件。 它具有對關(guān)系數(shù)據(jù)、XML文檔和應(yīng)用程序數(shù)據(jù)的訪問能 力,是迄今為止最有效的數(shù)據(jù)庫訪問技術(shù)。ADO.NET支持 多種開發(fā)需求,包括創(chuàng)建應(yīng)用程序、工具、語言或Internet 瀏覽器使用的數(shù)據(jù)庫客戶端應(yīng)用程序和中間層業(yè)務(wù)對象。 簡而言之,ADO.NET是.NET提供的為訪問各種數(shù)據(jù)源提供 統(tǒng)一接口和方法的數(shù)據(jù)訪問技術(shù)。ADO.NET包括兩大部分: 數(shù)據(jù)提供程序和數(shù)據(jù)集(DataSet)。,ADO.NET對象模型: .NET Framewo

3、rk 數(shù)據(jù)提供程序是專門為數(shù)據(jù)處理以及快速地只進、只讀訪問數(shù)據(jù)而設(shè)計的組件,它由Connection、Command、DataReader和DataAdapter對象組成。該組件的主要功能是將數(shù)據(jù)源中的數(shù)據(jù)取出,放入DataSet對象中,或?qū)⑿薷暮蟮臄?shù)據(jù)存回數(shù)據(jù)源。 DataSet專門為獨立于任何數(shù)據(jù)源的數(shù)據(jù)訪問而設(shè)計的組件,用于多種不同的數(shù)據(jù)源和XML數(shù)據(jù),它像一個內(nèi)存數(shù)據(jù)庫,可以包含一個表或多個表,表與表之間可以建立關(guān)系。,2、數(shù)據(jù)提供程序及組成 根據(jù)將要訪問的數(shù)據(jù)庫類型,.NET框架提供了不同有數(shù)據(jù)提供程序: (1)SQL Server數(shù)據(jù)提供程序,用以訪問SQL Server數(shù)據(jù)庫 (

4、2)OLE DB數(shù)據(jù)提供程序,用以訪問任何與OLE DB兼容的數(shù)據(jù)庫 (3)ODBC數(shù)據(jù)提供程序,用訪問ODBC建立的數(shù)據(jù)庫 (4)Oracle數(shù)據(jù)提供程序,用以訪問Oracle 8以上版本的數(shù)據(jù)庫,2、數(shù)據(jù)提供程序及組成 每個數(shù)據(jù)提供程序都是由以下的核心對象組成: Connection對象,用于連接數(shù)據(jù)源,即建立對物理數(shù)據(jù)庫的連接; Command對象,用于向數(shù)據(jù)源發(fā)出各種SQL命令,如返回數(shù)據(jù)、修改數(shù)據(jù)、運行存儲過程以及發(fā)送或檢索參數(shù)信息等。即在數(shù)據(jù)源上執(zhí)行的 SQL 語句或者存儲過程; DataReader對象,從數(shù)據(jù)源中提供高性能的數(shù)據(jù)流。即從數(shù)據(jù)源中獲取只向前的、只讀的數(shù)據(jù)流; Da

5、taAdapter對象,提供連接DataSet對象和數(shù)據(jù)源的橋梁,它使用Command對象在數(shù)據(jù)源中執(zhí)行SQL命令,以便將數(shù)據(jù)加載到DataSet對象中,使DataSet中數(shù)據(jù)的更改與數(shù)據(jù)源保持一致。 注意:以上所有對象都兩種類型,SQLXXXX對象和OleXXXX對象。其中以Sql開頭的對象用來連接SQL Server數(shù)據(jù)庫,它們存儲于System.Data.SqlClient命名空間中;以O(shè)leDB開頭的對象用于連接其他OLE DB數(shù)據(jù)庫(Access、Oracle等),它們存儲于System.Data.OleDB命名空間中。,3、Connection的創(chuàng)建及連接設(shè)置 要對數(shù)據(jù)庫進行操作,

6、首先要建立起對該數(shù)據(jù)庫的連接。在.NET環(huán)境下,通過SQL Server數(shù)據(jù)提供程序的SqlConnection對象建立對SQL Server數(shù)據(jù)庫的連接;通過OLE DB數(shù)據(jù)提供程序的OleDbConnection對象建立對Access和Oracle提供有OLE DB訪問接口的數(shù)據(jù)庫的連接;OracleConnection類的對象連接Oracle數(shù)據(jù)庫;而OdbcConnection類的對象連接任何支持ODBC數(shù)據(jù)庫。 Connection對象,其實質(zhì)上就是連接字符串(ConnectionString),通過設(shè)置該字符串的屬性來管理數(shù)據(jù)源的連接。它的屬性如下表。其語法格式: string C

7、onnectionString=“server=;database=;trusted_connection=true|false;uid=;pwd=” SqlConnection conn = new SqlConnection(ConnectionString);,3、Connection的創(chuàng)建及連接設(shè)置 Connection對象的屬性,3、Connection的創(chuàng)建及連接設(shè)置 SQL SERVER數(shù)據(jù)庫的兩種連接模式。 1、Windows模式連接,以windows連接模式必須 將trusted_connection=true 。 例如: string myconnection = serv

8、er=(local);database=news;trusted_connection=true; SqlConnection conn = new SqlConnection(myconnection);,3、Connection的創(chuàng)建及連接設(shè)置 SQL SERVER數(shù)據(jù)庫的兩種連接模式。 2、混合模式連接,使用此種連接模式必須輸入登錄名和登陸口令。 例如: string myconnection = server=(local);database=news;uid=sa;pwd=sa; SqlConnection conn = new SqlConnection(myconnection)

9、;,3、Connection的創(chuàng)建及連接設(shè)置 Connection的方法。 1、Open方法,用于打開由ConnectionString屬性指定的數(shù)據(jù)源連接。格式如下: 連接對象名. Open() 2、Close方法,用于斷開由ConnectionString屬性指定的數(shù)據(jù)源連接。格式如下: 連接對象名. Close(),4、Command命令 Command對象主要是運行SELECT、INSERT、UPDATE或DELETE之類的SQL語句命令,同時還可以調(diào)用存儲過程或從特定表中取得記錄。 這使用Command對象的命令,這些命令都是一次性命令,即執(zhí)行一個SQL命令或一個存儲過程,并返回一個

10、操作結(jié)果。,4、Command命令 Command對象的創(chuàng)建方法有: 使用無參數(shù)的構(gòu)造函數(shù)來創(chuàng)建Connection對象的新實例,然后設(shè)置適當?shù)膶傩灾?。其格式: SqlCommand com=new SqlCommand( ); com.Connection=cn; 使用帶參數(shù)的構(gòu)造函數(shù), 并指定查詢字符串和Connection對象。其格式: SqlCommand com=new SqlCommand(命令文本,cn); 調(diào)用Connection對象的CreateCommand()方法 。其格式: SqlCommand com=cn.CreateCommand( );,4、Command命令

11、 Command對象屬性。,4、Command命令 Command對象方法,5、DataReader對象 DataReader對象,用于從數(shù)據(jù)源中讀取只進且只讀的數(shù)據(jù)流。 我們只需要按順序讀取數(shù)據(jù)而不需要其他操作時,可以使用DataReader對象。 DataReader類是抽象類,因此不能直接實例化,而是通過執(zhí)行Command對象的ExecuteReader方法返回DataReader實例。,5、DataReader對象 DataReader對象屬性,5、DataReader對象命令 DataReader對象方法,6、DataAdapter對象 DataAdapter對象,稱為“數(shù)據(jù)適配器”

12、,是一種通用類,可以執(zhí)行針對數(shù)據(jù)源的各種操作,包括更新變動的數(shù)據(jù),填充數(shù)據(jù)集以及其他操作。 DataAdapter對象在DataSet與數(shù)據(jù)之間起橋梁作用。數(shù)據(jù)庫中的數(shù)據(jù)需要通過數(shù)據(jù)適配器的運輸才存放到數(shù)據(jù)集中,而在數(shù)據(jù)集中的任何修改也要通過數(shù)據(jù)適配器提交到數(shù)據(jù)庫中,數(shù)據(jù)適配器就象倉庫和車間臨時倉庫之間運輸材料的運貨車,而數(shù)據(jù)連接則是運貨車行走的路線。,6、 DataAdapter對象 DataAdapter對象屬性 DataAdapter對象的常用屬性形式為XXXCommand,用于描述 和設(shè)置操作數(shù)據(jù)庫。使用DataAdapter對象,可以讀取、添加、更新 和刪除數(shù)據(jù)源中的記錄。對于每種操

13、作的執(zhí)行方式,適配器支持以 下4個屬性,類型都是Command,分別用來管理數(shù)據(jù)操作的“增”、 “刪”、“改”、“查”動作。,6、 DataAdapter對象 DataAdapter對象方法,7、使用ADO.NET開發(fā)數(shù)據(jù)庫應(yīng)用程序的一般步驟 (1)根據(jù)使用的數(shù)據(jù)源,確定使用的.NET Framework 數(shù)據(jù)提供程序; (2)建立與數(shù)據(jù)源的連接,需使用Connection對象; (3)執(zhí)行對數(shù)據(jù)源的操作命令,通常是SQL命令,需 使用Command對象; (4)使用數(shù)據(jù)集對獲得的數(shù)據(jù)進行操作,需使用 DataReader、DataSet等對象; (5)向用戶顯示數(shù)據(jù),需使用數(shù)據(jù)控件。,【任務(wù)1】編寫一個用來測試連接的應(yīng)用程序,用來建立與當前目錄下的 SQL Server2008 “student”數(shù)據(jù)庫的連接。程序的設(shè)置界面如圖1所示,程序的運行界面如圖2所示。,三、任務(wù)實施,圖1 程序設(shè)計界面,圖2 程序運行界面,代碼如下,【任務(wù)2】已知在應(yīng)用程序當前目錄下,有一個名為“Student”的數(shù)據(jù)庫,該數(shù)據(jù)庫中有一個名為student的表,表中的數(shù)據(jù)如圖3所示。請使用Command對象執(zhí)行SQL命令向表中插入一個學生的信息,學生數(shù)據(jù)如下: 4 趙六 18 插入后,student表中的內(nèi)容如圖4所示。

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論