ASPNET35開(kāi)發(fā)大全第8章_第1頁(yè)
ASPNET35開(kāi)發(fā)大全第8章_第2頁(yè)
ASPNET35開(kāi)發(fā)大全第8章_第3頁(yè)
ASPNET35開(kāi)發(fā)大全第8章_第4頁(yè)
ASPNET35開(kāi)發(fā)大全第8章_第5頁(yè)
已閱讀5頁(yè),還剩27頁(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、第八章Web表單的數(shù)據(jù)控制了解了ADO.NET的基礎(chǔ)之后,就可以使用ADO.NET提供的對(duì)象來(lái)開(kāi)發(fā)和操作數(shù)據(jù)庫(kù)了。 ASP.NET還提供了Web表單數(shù)據(jù)控件,開(kāi)發(fā)者可以智能地配置與數(shù)據(jù)庫(kù)的連接,而無(wú)需手動(dòng)描述數(shù)據(jù)庫(kù)連接。 ASP.NET不僅提供了數(shù)據(jù)源的控件,還提供了可以顯示數(shù)據(jù)的控件,簡(jiǎn)化了數(shù)據(jù)顯示的開(kāi)發(fā),開(kāi)發(fā)者只需簡(jiǎn)單地修改模板就可以實(shí)現(xiàn)數(shù)據(jù)顯示和分頁(yè)。8.1數(shù)據(jù)源控件數(shù)據(jù)源控件類似于ADO.NET中的連接對(duì)象。 數(shù)據(jù)源控件用于配置數(shù)據(jù)源,并在綁定數(shù)據(jù)源控件后,可以從數(shù)據(jù)源控件中檢索和顯示數(shù)據(jù)源中的數(shù)據(jù)。的。 不需要通過(guò)程序?qū)崿F(xiàn)數(shù)據(jù)源的描述.8.1.1 SQL數(shù)據(jù)源控制(SqlDataSo

2、urce )SqlDataSource控件表示通過(guò)ADO.NET連接到SQL數(shù)據(jù)庫(kù)提供程序的數(shù)據(jù)源控件。 sqldata源可以與受ADO.NET支持的數(shù)據(jù)庫(kù)(如SQL Server、訪問(wèn)、Oledb、Odbc和Oracle )交互。SqlDataSource控件支持?jǐn)?shù)據(jù)的獲取、插入、更新、刪除、排序等,因此數(shù)據(jù)綁定控件可以在允許的條件下自動(dòng)執(zhí)行這些功能,而無(wú)需手動(dòng)實(shí)現(xiàn)代碼。 此外,當(dāng)SqlDataSource控件所屬的頁(yè)打開(kāi)時(shí),SqlDataSource控件還可以自動(dòng)打開(kāi)數(shù)據(jù)庫(kù),執(zhí)行SQL語(yǔ)句或存儲(chǔ)過(guò)程,返回選定的數(shù)據(jù)并關(guān)閉連接。 SqlDataSource控件的強(qiáng)大功能大大簡(jiǎn)化了開(kāi)發(fā)人員的開(kāi)

3、發(fā),并減少了開(kāi)發(fā)過(guò)程中的代碼。 但是,SqlDataSource控件也有缺點(diǎn)。 性能不太適合大規(guī)模開(kāi)發(fā),SqlDataSource控件足夠用于中小規(guī)模開(kāi)發(fā)。創(chuàng)建sqldata源控件ASP.NET提供的SqlDataSource控件可以很容易地添加到頁(yè)面中,而SqlDataSource控件添加到ASP.NET頁(yè)面時(shí),將生成ASP.NET標(biāo)記。 示例代碼如下所示:切換到視圖模式并單擊SqlDataSource控件時(shí),顯式地選擇“設(shè)置數(shù)據(jù)源”,然后單擊“設(shè)置數(shù)據(jù)源”,SqlDataSource控件設(shè)置向?qū)?huì)智能地執(zhí)行操作,如圖8-1所示創(chuàng)建新數(shù)據(jù)源后,開(kāi)發(fā)人員可以選擇是保存到web.config數(shù)據(jù)

4、源,還是通常保存應(yīng)用程序,以供全局配置。 因?yàn)槟?dāng)前沒(méi)有連接,所以請(qǐng)單擊“新建連接”按鈕來(lái)選擇或創(chuàng)建數(shù)據(jù)源。 單擊后,將顯示一個(gè)對(duì)話框,您可以在其中選擇數(shù)據(jù)庫(kù)文件的類型,如圖8-2所示。圖8-1 sqldata源控制器的配置圖8-2數(shù)據(jù)源的選擇如果選中,配置信息將顯式顯示在web.config上。 如果需要維護(hù)用戶控件,可以直接修改web.config,而無(wú)需更改每頁(yè)的數(shù)據(jù)源控件,從而便于開(kāi)發(fā)和維護(hù)。 選擇數(shù)據(jù)源后,就像ADO.NET中的連接對(duì)象一樣,必須建立與數(shù)據(jù)庫(kù)的連接。 設(shè)置連接后,可以單擊“測(cè)試連接”按鈕來(lái)測(cè)試連接是否成功,如圖8-3和8-4所示。圖8-3添加連接測(cè)試圖8-4連接連接成

5、功后,單擊“確定”按鈕,自動(dòng)添加連接,如圖8-5所示。 成功添加連接后,該連接的連接字符串將顯示在web.config配置文件中,如下所示。數(shù)據(jù)源控件可以指定開(kāi)發(fā)者使用的Select語(yǔ)句或存儲(chǔ)過(guò)程。 開(kāi)發(fā)者可以在Select語(yǔ)句的設(shè)置窗口中設(shè)置和生成Select語(yǔ)句。 如果開(kāi)發(fā)人員想手動(dòng)創(chuàng)建Select語(yǔ)句或其他語(yǔ)句,可以單擊“指定自定義SQL語(yǔ)句或存儲(chǔ)過(guò)程”按鈕進(jìn)行自定義設(shè)置。 Select語(yǔ)句的設(shè)置和生成如圖8-6所示。使用成功添加了圖8-5連接的圖8-6配置Select語(yǔ)句開(kāi)發(fā)者只需選中適當(dāng)?shù)淖侄?,就可以選擇Where條件和Order By語(yǔ)句來(lái)設(shè)置Select語(yǔ)句。 但是,通過(guò)選擇只能

6、查詢一個(gè)表,實(shí)現(xiàn)簡(jiǎn)單的查詢語(yǔ)。 要實(shí)現(xiàn)復(fù)雜的SQL查詢語(yǔ)句,請(qǐng)單擊“指定自定義SQL語(yǔ)句或存儲(chǔ)過(guò)程”來(lái)配置自定義SQL語(yǔ)句或存儲(chǔ)過(guò)程,開(kāi)發(fā)人員將getdetail的存儲(chǔ)過(guò)程與數(shù)據(jù)源和單擊“下一步”按鈕后,必須像ADO.NET參數(shù)化查詢一樣設(shè)置適當(dāng)?shù)淖侄巍?在數(shù)據(jù)源控件中,參數(shù)化變量也用表示,如果需要配置適當(dāng)?shù)淖侄?如WHERE語(yǔ)句),則也必須配置參數(shù),如圖8-8所示。圖8-7定義自定義語(yǔ)句或存儲(chǔ)過(guò)程圖8-8添加where子句添加WHERE子句時(shí),SQL語(yǔ)句的值可以選擇默認(rèn)值、控件、Cookie、Session等。 配置完成后,可以測(cè)試查詢。 如果測(cè)試后顯示了預(yù)期的結(jié)果,可以單擊“完成”,如圖8

7、-9所示。圖8-9查詢的測(cè)試和完成完成后,sqldata源控制標(biāo)簽代碼如下所示。配置SqlDataSource控件屬性SqlDataSource控件還包含可視特性,如“刪除查詢”、“插入查詢”、“選擇查詢”和“更新查詢”。 如果需要使用可視化屬性,可以選中“使用自定義SQL語(yǔ)句或存儲(chǔ)過(guò)程”復(fù)選框,在導(dǎo)航中使用查詢生成器來(lái)生成查詢語(yǔ)句(圖8-10 )。圖8-10自定義語(yǔ)句或存儲(chǔ)過(guò)程當(dāng)您選擇“查詢生成器”按鈕時(shí),系統(tǒng)將提示您選擇相應(yīng)的表并從相應(yīng)的表生成查詢語(yǔ)句,如圖8-11和8-12所示。圖8-11選擇對(duì)應(yīng)的表使用圖8-12查詢生成器配置了適當(dāng)?shù)牟樵冋Z(yǔ)句后,SqlDataSource控件的HTML

8、代碼如下所示。上述代碼自動(dòng)添加InsertCommand,并指定Insert語(yǔ)句。 開(kāi)發(fā)者可以在SqlDataSource控件中指定四個(gè)命令參數(shù):選擇命令、更新命令、delect命令和插入命令。 每個(gè)都是數(shù)據(jù)源控件的單個(gè)屬性,開(kāi)發(fā)者可以配置一個(gè)用于指定Select、Update、Delete和Insert方法的語(yǔ)句。SqlDataSource控件還可以使用高速緩存減少頁(yè)面和數(shù)據(jù)庫(kù)之間的連接頻率。 這可以避免大的查詢操作開(kāi)銷,建立連接,并關(guān)閉連接。 只要數(shù)據(jù)庫(kù)相對(duì)穩(wěn)定,就可以使用SqlDataSource控件“啟用緩存”進(jìn)行緩存。 默認(rèn)情況下,“啟用緩存”(EnableCaching )處于禁用

9、狀態(tài),并且需要開(kāi)發(fā)者自己設(shè)定緩存屬性。8.1.2訪問(wèn)數(shù)據(jù)源控制(訪問(wèn)數(shù)據(jù)源)上一章介紹了使用ADO.NET的OleDb連接和讀取Access數(shù)據(jù)庫(kù)的方法。 Access數(shù)據(jù)庫(kù)是桌面級(jí)數(shù)據(jù)庫(kù),請(qǐng)考慮在應(yīng)用程序性能和數(shù)據(jù)庫(kù)性能要求不太高、數(shù)據(jù)量不太多時(shí)選擇Access數(shù)據(jù)庫(kù)。sqldata源可以與ADO.NET支持的數(shù)據(jù)源(如SQL Server、訪問(wèn)、Oledb、Odbc和Oracle )交互。 但是,Access數(shù)據(jù)庫(kù)具有一個(gè)名為Access數(shù)據(jù)源的特殊數(shù)據(jù)源控件。 訪問(wèn)數(shù)據(jù)源控件與sqldata源控件基本相同,如圖8-13所示。與SqlDataSource不同,SqlDataSource主要

10、使用連接屬性連接到數(shù)據(jù)庫(kù),而Access使用訪問(wèn)數(shù)據(jù)源方法連接到數(shù)據(jù)庫(kù)。 因?yàn)锳ccess數(shù)據(jù)庫(kù)作為文件存在于系統(tǒng)中,所以主要使用DataFile屬性直接以文件地址連接。 要連接到Access數(shù)據(jù)庫(kù),必須選擇Access數(shù)據(jù)庫(kù)文件,如圖8-14所示。圖8-13選擇數(shù)據(jù)庫(kù)圖8-13選擇訪問(wèn)文件選擇Access數(shù)據(jù)庫(kù)文件后,單擊“確定”按鈕,將連接字符串放置在開(kāi)發(fā)人員身上,確認(rèn)沒(méi)有錯(cuò)誤,然后單擊“下一步”按鈕進(jìn)入Select語(yǔ)句的放置。 與SqlDataSource控件一樣,可以配置Select語(yǔ)句或自定義存儲(chǔ)過(guò)程,如圖8-15所示。為相同的8-15access數(shù)據(jù)庫(kù)配置Select語(yǔ)句其他步驟與

11、SqlDataSource相同。 創(chuàng)建完成后,訪問(wèn)數(shù)據(jù)源控件的HTML代碼如下所示。如果需要使用Access數(shù)據(jù)庫(kù),建議將Access數(shù)據(jù)庫(kù)文件保存到App_Data文件夾。 由于ASP.NET無(wú)法直接請(qǐng)求App_Data文件夾,因此確保數(shù)據(jù)庫(kù)文件是專用的。注意: Access數(shù)據(jù)源控件不支持訪問(wèn)受密碼保護(hù)的Access數(shù)據(jù)庫(kù)文件。 如果需要訪問(wèn)受密碼保護(hù)的Access數(shù)據(jù)庫(kù)文件,則必須使用SqlDataSource控件。8.1.3目標(biāo)數(shù)據(jù)源控件(ObjectDataSource )大多數(shù)ASP.NET數(shù)據(jù)源控件(如SqlDataSource )用于兩層應(yīng)用程序?qū)印?在這個(gè)層次結(jié)構(gòu)中,呈現(xiàn)層(

12、ASP.NET頁(yè)面)能夠直接與數(shù)據(jù)層(數(shù)據(jù)庫(kù)、XML文件等)通信。 但是,典型的應(yīng)用程序設(shè)計(jì)原則是將呈現(xiàn)層和業(yè)務(wù)邏輯分離,并將業(yè)務(wù)邏輯封裝在業(yè)務(wù)對(duì)象中。 這些業(yè)務(wù)對(duì)象在呈現(xiàn)層和數(shù)據(jù)層之間形成一層,生成三層應(yīng)用程序結(jié)構(gòu)。 ObjectDataSource控件通過(guò)提供將相關(guān)頁(yè)的數(shù)據(jù)控件綁定到中間層的業(yè)務(wù)對(duì)象的方法來(lái)支持三層結(jié)構(gòu)。 如果不使用擴(kuò)展代碼,ObjectDataSource使用中間層業(yè)務(wù)對(duì)象來(lái)聲明數(shù)據(jù)的選擇、插入、更新、刪除、分頁(yè)、排序、高速緩存和篩選。也就是說(shuō),SqlDataSource用于雙層模型.頁(yè)面直接訪問(wèn)數(shù)據(jù)庫(kù). ObjectDataSource用于通過(guò)中間業(yè)務(wù)對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)的三層模型。 中間層業(yè)務(wù)對(duì)象在呈現(xiàn)層中使用,包括開(kāi)發(fā)中使用的自定義控件。 ObjectDataSource中的業(yè)務(wù)對(duì)象是可以檢索或更新數(shù)據(jù)的業(yè)務(wù)對(duì)象,如Bin和App_Code目錄中定義的對(duì)象,選擇業(yè)務(wù)對(duì)象如圖8-16所示。圖8-16業(yè)務(wù)對(duì)象的選擇創(chuàng)建類庫(kù)并將引用添加到ASP.NET網(wǎng)站后,可以使用ObjectDataSource對(duì)象選擇類庫(kù)中的方法,如圖8-17和圖8-18所示。添加圖8-17庫(kù)添加圖8-18ObjectDataSource控件對(duì)象模型類似于SqlDataSource控件。 ObjectDataSource公開(kāi)TypeN

溫馨提示

  • 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)論