ADO-04-在連接環(huán)境中獲取數(shù)據(jù)_第1頁(yè)
ADO-04-在連接環(huán)境中獲取數(shù)據(jù)_第2頁(yè)
ADO-04-在連接環(huán)境中獲取數(shù)據(jù)_第3頁(yè)
ADO-04-在連接環(huán)境中獲取數(shù)據(jù)_第4頁(yè)
ADO-04-在連接環(huán)境中獲取數(shù)據(jù)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)習(xí)目標(biāo):掌握創(chuàng)建和初始化Command對(duì)象的方法掌握通過(guò)Visual Studio 2005配置Command對(duì)象的方法掌握在Visual Studio 2005中配置參數(shù)集合的方法掌握創(chuàng)建和配置Command對(duì)象參數(shù)的方法掌握通過(guò)使用Command對(duì)象來(lái)執(zhí)行 SQL 語(yǔ)句的方法掌握創(chuàng)建DataReader的方法掌握獲取DataReader的屬性 掌握?qǐng)?zhí)行DataReader的方法掌握使用Command對(duì)象進(jìn)行異步操作的方法掌握使用Command對(duì)象查詢多重活動(dòng)結(jié)果集的方法目標(biāo) SQL 指定應(yīng)用程序所需要訪問(wèn)的數(shù)據(jù) 返回所訪問(wèn)到的數(shù)據(jù) 4.1 和數(shù)據(jù)源交流的語(yǔ)言- SQL在同數(shù)據(jù)源之間建立連

2、接之后,應(yīng)用程序和數(shù)據(jù)源之間的交流就包括以下兩個(gè)方面。SQL (續(xù))Command對(duì)象:包含要對(duì)數(shù)據(jù)庫(kù)執(zhí)行的SQL命令 DataReader對(duì)象:根據(jù)Command對(duì)象的查詢結(jié)果, 按順序獲取單行數(shù)據(jù) 4.1 和數(shù)據(jù)源的交流語(yǔ)言-SQLADO.NET提供兩個(gè)對(duì)象, 二者相互配合來(lái)實(shí)現(xiàn)應(yīng)用程序和數(shù)據(jù)源之間的交流。 Command 對(duì)象 通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象 通過(guò)編程方式創(chuàng)建Command對(duì)象 4.2 Command 對(duì)象通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象 4.2.1 通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)

3、象在任意選項(xiàng)卡上單擊鼠標(biāo)右鍵,選擇“選擇項(xiàng)”命令, 手動(dòng)加入工具箱。1通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象(續(xù)) 4.2.1 通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象等待一段時(shí)間后,出現(xiàn)“選擇工具箱項(xiàng)”對(duì)話框,從中找到SqlCommand對(duì)象,勾選后單擊“確定” 按鈕。2工具箱中可看到SqlCommand控件,可以拖曳并使用它 。3通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象(續(xù)) 4.2.1 通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象在窗體設(shè)計(jì)器中,拖曳一個(gè)SqlCommand控件。 4通過(guò)Visual S

4、tudio 2005創(chuàng)建Command對(duì)象(續(xù)) 4.2.1 通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象在“屬性”窗口中,把SqlCommand對(duì)象的Name屬性值改為“ cmdGetEmployees ” 。5通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象(續(xù)) 4.2.1 通過(guò)Visual Studio 2005創(chuàng)建Command對(duì)象通過(guò)編程方式創(chuàng)建Command對(duì)象 4.2.2 通過(guò)編程方式創(chuàng)建Command對(duì)象C#SqlCommand myCommand = new SqlCommand();通過(guò)編程方式創(chuàng)建Command對(duì)象的過(guò)程很簡(jiǎn)單, 只需要按

5、照如下代碼進(jìn)行實(shí)例化 。通過(guò)編程方式創(chuàng)建Command對(duì)象 (續(xù)) 4.2.2 通過(guò)編程方式創(chuàng)建Command對(duì)象未指定關(guān)于連接的任何信息。1即使以上代碼編譯通過(guò),也不能完成任何事情。原因如下。 也未指定所要執(zhí)行的命令的信息。2總結(jié) 4.2.2 通過(guò)編程方式創(chuàng)建Command對(duì)象使用無(wú)參數(shù)的構(gòu)造函數(shù)來(lái)創(chuàng)建Command對(duì)象的新實(shí)例,然后設(shè)置適當(dāng)?shù)膶傩灾?。1總結(jié)一下,可以通過(guò)以下三種方式來(lái)創(chuàng)建Command對(duì)象 。使用帶參數(shù)的構(gòu)造函數(shù), 并指定查詢字符串和Connection對(duì)象。 2調(diào)用Connection對(duì)象的CreateCommand()方法 。 3Command對(duì)象的屬性 4.3 Co

6、mmand對(duì)象的屬性Command對(duì)象的屬性及其描述如下表所示。屬性描述CommandText要對(duì)數(shù)據(jù)源執(zhí)行的SQL 語(yǔ)句或存儲(chǔ)過(guò)程CommandTimeout在終止執(zhí)行命令的嘗試并生成錯(cuò)誤提示信息之前的等待時(shí)間(單位:秒)CommandType指示如何解釋 CommandText 屬性,默認(rèn)值是TextConnectionCommand對(duì)象所要使用的ConnectionParametersParameters集合Transaction執(zhí)行命令所在的事務(wù)(將在第7章中詳細(xì)闡述)UpdatedRowSource確定當(dāng)Command對(duì)象被DataAdapter或TableAdapter的Updat

7、e()方法使用時(shí),其結(jié)果如何應(yīng)用于DataRowCommandText屬性(續(xù)) 4.3.1 CommandText屬性Visual Studio 2005中的查詢生成器提供了多種方法來(lái)生成SQL語(yǔ)句。 CommandType屬性(續(xù)) 4.3.3 CommandType屬性CommandType屬性用來(lái)指示如何解釋CommandText屬性的內(nèi)容 。其取值及描述如下表所示。屬性值描述StoredProcedure指示CommandText屬性所包含的是要執(zhí)行的存儲(chǔ)過(guò)程的名稱TableDirect指示CommandText屬性所包含的是要訪問(wèn)的一個(gè)表的名稱,從此表中將取出所有的列和行Text指

8、示CommandText屬性包含的是要執(zhí)行的SQL命令(此為默認(rèn)值)設(shè)置Command對(duì)象的屬性 4.3.8 設(shè)置Command對(duì)象的屬性通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性 通過(guò)編程設(shè)置Command對(duì)象的屬性 設(shè)置Command對(duì)象的屬性 (續(xù)) 通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性在“窗體設(shè)計(jì)器”的組件托盤(pán)中,選中cmdGetEmployees 。1通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性的步驟如下 。在“屬性”窗口中,選擇Connection屬性,單擊其右側(cè)的下拉箭頭,選擇曾經(jīng)使用

9、的SqlConnection數(shù)。 2設(shè)置Command對(duì)象的屬性(續(xù)) 通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性繼續(xù)在“屬性”窗口中選擇CommandText屬性,單擊其右側(cè)的省略號(hào)按鈕 。3設(shè)置Command對(duì)象的屬性(續(xù)) 通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性在隨后出現(xiàn)的“查詢生成器”中,手動(dòng)添加所需要的表。 4設(shè)置Command對(duì)象的屬性(續(xù)) 通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性雙擊“員工”表,將其添加至“查詢生成器”中,然后單擊“關(guān)閉”按鈕 。5

10、設(shè)置Command對(duì)象的屬性(續(xù)) 通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性選擇所需要的列,單擊“確定”按鈕 。6設(shè)置Command對(duì)象的屬性(續(xù)) 通過(guò)Visual Studio 2005設(shè)置Command對(duì)象的屬性設(shè)置Command對(duì)象的屬性 (續(xù)) 通過(guò)編程設(shè)置Command對(duì)象的屬性Command對(duì)象的大多數(shù)屬性是通過(guò)簡(jiǎn)單的賦值語(yǔ)句來(lái)設(shè)置的,不過(guò)Parameters集合是一個(gè)例外,它所使用的是Add()方法。在下一節(jié)中將詳細(xì)討論P(yáng)arameters集合。 Command對(duì)象的參數(shù) 4.4 Command對(duì)象的參數(shù)

11、要在Command對(duì)象中使用參數(shù),通常有以下三個(gè)步驟。 在命令文本或存儲(chǔ)過(guò)程中指定參數(shù) 。1將參數(shù)添加至Command對(duì)象的Parameters集合中 。2設(shè)置參數(shù)值 。3Command對(duì)象的參數(shù)(續(xù)) 4.4 Command對(duì)象的參數(shù)Parameters集合提供了一系列方法對(duì)集合進(jìn)行配置 。方法描述Add()將參數(shù)添加到集合中Clear()從集合中移除所有參數(shù)Insert()將參數(shù)插入集合中的指定索引位置Remove()從集合中移除所指定的參數(shù)通過(guò)Visual Studio 2005配置Parameters集合 通過(guò)編程方式添加并配置參數(shù) 設(shè)置Parameters的值 Command對(duì)象的參

12、數(shù)(續(xù)) 4.4 Command對(duì)象的參數(shù)配置Parameters集合 4.4.1 通過(guò)Visual Studio 2005配置Parameters集合在“窗體設(shè)計(jì)器”中,拖曳一個(gè)SqlCommand對(duì)象到窗體上 。1Visual Studio 2005 提供了參數(shù)集合編輯器來(lái)配置參數(shù) 。在“屬性”窗口中,把Command對(duì)象的Name屬性值改為“ cmdEmployeeDetails ” 。2選擇Connection屬性,在相應(yīng)的下拉箭頭中選擇SqlConnection1 。3配置Parameters集合(續(xù))選擇Parameters屬性,單擊其右側(cè)的省略號(hào)按鈕 。4 4.4.1 通過(guò)Vis

13、ual Studio 2005配置Parameters集合在彈出的“SqlParameter 集合編輯器”中,添加所需要的參數(shù),本示例需要添加一個(gè)EmployeeID參數(shù) 。5單擊“確定” 按鈕。6配置Parameters集合 (續(xù)) 4.4.1 通過(guò)Visual Studio 2005配置Parameters集合添加并配置參數(shù) 4.4.2 通過(guò)編程方式添加并配置參數(shù)創(chuàng)建新的SqlParameter對(duì)象或OleDbParameter對(duì)象 。1通過(guò)編程方式將參數(shù)添加至Command對(duì)象的Parameters 集合中,需遵循以下步驟 。配置參數(shù)對(duì)象的屬性 。2調(diào)用Command對(duì)象Paramete

14、rs 集合的Add()方法,將參數(shù)添加至Command對(duì)象的Parameters 集合中。 3添加并配置參數(shù)(續(xù)) 4.4.2 通過(guò)編程方式添加并配置參數(shù)參數(shù)對(duì)象的屬性及其描述如下表所示。屬性描述ParameterName將該屬性設(shè)置為SQL命令或存儲(chǔ)過(guò)程中的參數(shù)名,如 “EmployeeID” DbType、SqlDbType或 OleDbType將該屬性設(shè)置為參數(shù)的數(shù)據(jù)類型。 設(shè)置SqlParameter對(duì)象的數(shù)據(jù)類型的方法有以下兩種。在DbType枚舉中選擇一個(gè)值賦給DbType屬性在SqlDbType枚舉中選擇一個(gè)值賦給SqlDbType屬性Size設(shè)置該屬性以指示參數(shù)大小,例如字符串

15、參數(shù)中字符的個(gè)數(shù)。無(wú)需為已知且具有固定大小的數(shù)據(jù)類型(例如DbType.Int32)指定大小Direction設(shè)置該屬性以指示該參數(shù)是只輸入?yún)?shù)、只輸出參數(shù)、雙向參數(shù)還是存儲(chǔ)過(guò)程的返回值。 該屬性可設(shè)置為ParameterDirection枚舉值之一:ParameterDirection.Input、ParameterDirection.InputOutput、ParameterDirection.Output或ParameterDirection.ReturnValue。默認(rèn)方向?yàn)镻arameterDirection.InputValue對(duì)于只輸入?yún)?shù)或雙向參數(shù)而言,在運(yùn)行該命令之前需要設(shè)置

16、Value屬性。對(duì)于只輸出參數(shù)、雙向參數(shù)和存儲(chǔ)過(guò)程的返回值而言,在運(yùn)行該命令之后可以檢索Value屬性設(shè)置Parameters的值 4.4.3 設(shè)置Parameters的值在設(shè)置好Parameters集合、執(zhí)行Command之前,必須為每一個(gè)Parameter設(shè)置它們的值。可以在“SqlParameter集合編輯器”中進(jìn)行設(shè)置 。使用Command對(duì)象來(lái)執(zhí)行 SQL 語(yǔ)句4.5 使用Command對(duì)象來(lái)執(zhí)行 SQL 語(yǔ)句創(chuàng)建Command對(duì)象后,就可以對(duì)數(shù)據(jù)庫(kù)執(zhí)行命令 。方法描述Cancel()取消命令的執(zhí)行CreateParameter()創(chuàng)建SqlParameter對(duì)象的新實(shí)例Execut

17、eScalar()執(zhí)行命令并返回查詢結(jié)果集中第一行的第一列。忽略額外的列或行ExecuteNonQuery()執(zhí)行命令并返回受影響的行數(shù)ExecuteReader()執(zhí)行命令并返回一個(gè)DataReader對(duì)象ExecuteXmlReader()執(zhí)行命令并生成一個(gè)XmlReader對(duì)象Prepare()在 SQL Server 的實(shí)例上創(chuàng)建命令的一個(gè)準(zhǔn)備(預(yù)編譯)版本ResetCommandTimeout()將CommandTimeout屬性重置為其默認(rèn)值SqlCommand 和 OleDbCommand類提供了相關(guān)的一些方法來(lái)執(zhí)行命令,其中最重要的有以下四種方法: ExecuteScalar(

18、) 方法 ExecuteNonQuery()方法 ExecuteReader()方法 ExecuteXMLReader()方法 使用Command對(duì)象來(lái)執(zhí)行 SQL 語(yǔ)句 (續(xù)) 4.5 使用Command對(duì)象來(lái)執(zhí)行 SQL 語(yǔ)句ExecuteScalar()方法 ExecuteNonQuery()方法 4.5 使用Command對(duì)象來(lái)執(zhí)行 SQL 語(yǔ)句使用Command對(duì)象來(lái)執(zhí)行 SQL 語(yǔ)句 (續(xù)) ExecuteScalar()方法 4.5.1 ExecuteScalar()方法要檢索某一種特定產(chǎn)品的名稱??梢跃帉?xiě)SQL語(yǔ)句返回此產(chǎn)品的ProductName 字段。 要查找數(shù)據(jù)庫(kù)中的產(chǎn)品

19、數(shù)量??梢跃帉?xiě)SQL 語(yǔ)句,使用COUNT()函數(shù)計(jì)算產(chǎn)品數(shù)量。要找出某一特定類別中的產(chǎn)品數(shù)量并獲得該類別的名稱??梢跃帉?xiě)存儲(chǔ)過(guò)程, 使用類別ID值作為輸入?yún)?shù),并設(shè)置類別名稱為輸出參數(shù) 。下面的示例顯示可能需要命令返回單一值的場(chǎng)景。 ExecuteScalar()方法 (續(xù)) 4.5.1 ExecuteScalar()方法打開(kāi)一個(gè)數(shù)據(jù)庫(kù)連接。創(chuàng)建并初始化一個(gè)Command對(duì)象。 對(duì)該Command對(duì)象調(diào)用ExecuteScalar()方法。 將從ExecuteScalar()返回的值轉(zhuǎn)換為適當(dāng)?shù)臄?shù)據(jù)類型。 釋放該Command對(duì)象。關(guān)閉該數(shù)據(jù)庫(kù)連接 。執(zhí)行返回標(biāo)量結(jié)果的查詢的步驟如下。 ExecuteNonQuery()方法 4.5.2 ExecuteNo

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論