




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第09章ASPNET數(shù)據(jù)訪問(HTML5與ASPNET程序設計教程〔第2版〕課件)12一月202359.1LINQ根本技術語言集成查詢〔LINQ〕語言集成查詢〔LINQ〕在對象領域和數(shù)據(jù)領域之間架起了一座橋梁,其最大特點是可以直接使用C#語法訪問各種數(shù)據(jù)源。LINQ技術包括以下幾個方面。〔1〕LINQtoEntities:將實體數(shù)據(jù)模型作為對象,然后再通過實體模型訪問各種數(shù)據(jù)源?!?〕LINQtoSQL:將關系數(shù)據(jù)庫的數(shù)據(jù)作為對象?!?〕LINQtoXML:用LINQ語法對XML文檔進行各種操作?!?〕LINQtoDataSet:將LINQ查詢結果直接保存到DataSet中?!?〕LINQtoObjects:查詢任何可枚舉的集合。12一月202369.1LINQ根本技術語言集成查詢〔LINQ〕使用LINQ技術可帶來以下優(yōu)點?!?〕語法與數(shù)據(jù)庫的SQL查詢語句類似。〔2〕針對語法錯誤和類型平安的編譯時檢查。〔3〕改進的調試器支持?!?〕編寫程序時的IntelliSense〔智能提示〕支持?!?〕直接處理XML元素的功能,而不是像W3C的DOM那樣需要創(chuàng)立容器XML文檔?!?〕強大的內存中XML文檔修改功能,比XPath或XQuery更容易使用?!?〕強大的篩選、排序和分組功能?!?〕用于跨多種數(shù)據(jù)源和數(shù)據(jù)格式處理數(shù)據(jù)的一致模型。12一月202379.1LINQ根本技術查詢表達式LINQ查詢表達式主要由from子句、let子句、orderby子句、where子句、group子句以及select子句構成。每一個LINQ查詢表達式都必須包含from子句,且必須以from子句開頭,以select或group子句結尾,使用from語句的主要作用是為了智能感知,使編譯器了解該語句為LINQ查詢表達式。如果LINQ查詢表達式還包含子查詢,那么子查詢表達式也必須以from子句開頭。12一月202389.1LINQ根本技術from子句from子句指定要查找的數(shù)據(jù)源以及范圍,多個from子句那么表示從多個數(shù)據(jù)源查找數(shù)據(jù)。from子句的一般格式為:from<變量名>in<數(shù)據(jù)源>【例9-1】演示from子句的根本用法。Where子句在LINQ中,用where子句指定查詢的過濾條件?!纠?-2】演示where子句的根本用法。12一月202399.1LINQ根本技術group子句group子句實現(xiàn)對查詢結果的分組操作。一般格式為:group<查詢結果返回的元素>by<分組條件>【例9-3】演示group子句的根本用法。let子句使用let變量可以創(chuàng)立一個新的變量,并且使用該變量保存表達式中的結果?!纠?-4】演示let子句的根本用法。12一月2023109.1LINQ根本技術orderby子句orderby子句對查詢結果進行排序操作,格式如下:orderbyelement[sortType]其中,element是要進行排序的字段。sortType是可選參數(shù),表示排序類型,包括升序〔ascending〕和降序〔desending〕兩個可選值,默認為ascending?!纠?-5】演示orderby子句的根本用法。select子句select子句指定在執(zhí)行查詢時產生結果的數(shù)據(jù)集中元素的類型。12一月2023119.1LINQ根本技術Lambda表達式Lambda表達式是一個匿名函數(shù),它可以包含表達式和語句,并且可用于創(chuàng)立委托或表達式目錄樹類型。當函數(shù)語句較少,而又需要用委托來調用時,使用Lambda表達式比較方便。所有Lambda表達式都使用Lambda運算符“=>〞,讀為“goesto〞,運算符的右邊包含一條或多條表達式或語句塊。如果表達式有輸入?yún)?shù),那么將參數(shù)放在運算符的左邊。例如:x=>x*x每一個LINQ查詢表達式都必須包含from子句,且必須以from子句開頭,以select或group子句結尾,使用from語句的主要作用是為了智能感知,使編譯器了解該語句為LINQ查詢表達式。如果LINQ查詢表達式還包含子查詢,那么子查詢表達式也必須以from子句開頭。12一月2023129.1LINQ根本技術Lambda表達式Lambda表達式的一般規(guī)那么如下:〔1〕表達式中的參數(shù)數(shù)量必須與委托類型包含的參數(shù)數(shù)量相同?!?〕表達式中的每個輸入?yún)?shù)必須都能夠隱式轉換為其對應的委托參數(shù)?!?〕如果表達式有返回值,該返回值必須能夠隱式轉換為委托的返回類型?!纠?-6】演示Lambda表達式的根本用法。每一個LINQ查詢表達式都必須包含from子句,且必須以from子句開頭,以select或group子句結尾,使用from語句的主要作用是為了智能感知,使編譯器了解該語句為LINQ查詢表達式。如果LINQ查詢表達式還包含子查詢,那么子查詢表達式也必須以from子句開頭。12一月202313數(shù)據(jù)綁定數(shù)據(jù)綁定經過兩個環(huán)節(jié),第一個環(huán)節(jié)是通過數(shù)據(jù)源控件〔例如EntityDataSource控件、LinqDataSource控件等〕自動獲取或存儲數(shù)據(jù)源中的數(shù)據(jù);第二個環(huán)節(jié)是將數(shù)據(jù)源控件和其他控件綁定在一起,被綁定的其他控件稱為數(shù)據(jù)綁定控件。數(shù)據(jù)綁定控件的最大特點是可以自動生成代碼,而且使用簡單、直觀。利用數(shù)據(jù)綁定控件可以進行如下操作?!?〕選擇和顯示數(shù)據(jù)?!?〕對數(shù)據(jù)進行排序、分頁和緩存?!?〕更新、插入和刪除數(shù)據(jù)?!?〕使用運行時參數(shù)篩選數(shù)據(jù)〔5〕使用參數(shù)創(chuàng)立“主/詳細信息〞方案。12一月202314數(shù)據(jù)綁定數(shù)據(jù)綁定表達式數(shù)據(jù)綁定是指把數(shù)據(jù)源中的數(shù)據(jù)取出來,顯示在頁面的各種控件上,用戶可以通過這些控件查看和修改數(shù)據(jù),這些修改會自動地保存到數(shù)據(jù)源中。數(shù)據(jù)綁定表達式包含在“<%#〞和“%>〞分隔符之內,格式如下:<%#數(shù)據(jù)綁定表達式%>使用數(shù)據(jù)綁定表達式的主要內容如下?!?〕在數(shù)據(jù)綁定表達式中,可以指定被綁定的public類型的字段或屬性?!?〕在后臺代碼中調用Page類的DataBind方法時,會自動計算所有數(shù)據(jù)綁定表達式的值?!?〕數(shù)據(jù)綁定表達式也可以用在效勞器控件屬性中,包括HTML效勞器控件和Web效勞器控件,格式如下:<控件名屬性="<%#數(shù)據(jù)綁定表達式%>"runat="server"/>【例9-7】演示數(shù)據(jù)綁定表達式的根本用法12一月202315數(shù)據(jù)綁定將數(shù)據(jù)源綁定到控件利用數(shù)據(jù)綁定技術可以綁定具有單一值的控件、列表控件以及模板化控件。綁定列表控件列表控件用于以各種列表形式呈現(xiàn)數(shù)據(jù),包括ListBox、DropDownList、CheckBoxList、RadioButtonList和BulletedList控件。當需要將數(shù)據(jù)源數(shù)據(jù)以列表形式顯示時,可以用數(shù)據(jù)綁定來實現(xiàn),此時控件中的每一項對應于數(shù)據(jù)源中的一項〔例如數(shù)據(jù)庫表中的一行〕。利用列表控件可以顯示來自數(shù)據(jù)源的一個字段,也可以用另一個字段作為項的值?!纠?-8】利用數(shù)據(jù)綁定將Course表的課程名稱顯示在ListBox中,中選擇某個課程名稱時,保存對應的編碼?!纠?-9】在代碼隱藏類中直接編寫代碼實現(xiàn)與ListBox控件綁定。12一月202316數(shù)據(jù)綁定將數(shù)據(jù)源綁定到控件綁定模板化控件在數(shù)據(jù)綁定表達式中,使用Eval方法實現(xiàn)單向綁定,使用Bind方法實現(xiàn)雙向數(shù)據(jù)綁定?!?〕Eval方法Eval方法用于定義單向〔只讀〕綁定,該方法將數(shù)據(jù)字段的值作為參數(shù),返回字符串形式的值?!?〕Bind方法Bind方法用于定義雙向〔可更新〕綁定,該方法可以檢索數(shù)據(jù)綁定控件的值,并將更改提交給數(shù)據(jù)庫。注意:只能對數(shù)據(jù)綁定控件的模板內的綁定使用Eval方法和Bind方法。出于性能的考慮,除非是綁定需要格式化字符串,一般使用bind方法。12一月2023179.3利用實體框架訪問數(shù)據(jù)庫ADO.NETEntityFramework〔簡稱EF〕是微軟推出的數(shù)據(jù)訪問架構。實體框架根本概念使用EntityFramework,可以方便地訪問SQLServer、Oracle、DB2等大型數(shù)據(jù)庫。另外,將語言集成查詢〔LINQ〕和實體框架相結合,能使我們快速開發(fā)出各種數(shù)據(jù)訪問相關的應用程序。12一月2023189.3利用實體框架訪問數(shù)據(jù)庫實體框架根本概念EntityFramework具有以下優(yōu)點。〔1〕應用程序可以通過更加以應用程序為中心的概念模型〔包括具有繼承性、復雜成員和關系的類型〕來工作?!?〕應用程序不再對特定的數(shù)據(jù)引擎或存儲架構具有硬編碼依賴性?!?〕可以在不更改應用程序代碼的情況下更改概念模型與特定于存儲的架構之間的映射。〔4〕開發(fā)人員可以使用可映射到各種存儲架構〔可能在不同的數(shù)據(jù)庫管理系統(tǒng)中實現(xiàn)〕的一致的應用程序對象模型。〔5〕多個概念模型可以映射到同一個存儲架構。12一月2023199.3利用實體框架訪問數(shù)據(jù)庫創(chuàng)立數(shù)據(jù)庫和實體數(shù)據(jù)模型本章的例子使用SQLServer2021Express來講解【例9-10】在工程中創(chuàng)立數(shù)據(jù)庫,然后使用“實體數(shù)據(jù)模型〞向導生成文件。即實現(xiàn)MyDatabaseModel概念模型和MyDatabase數(shù)據(jù)庫〔表、視圖以及存儲過程〕之間的映射。12一月2023209.3利用實體框架訪問數(shù)據(jù)庫GridView控件常用屬性12一月2023219.3利用實體框架訪問數(shù)據(jù)庫GridView控件常用事件【例9-11】在GridView控件中顯示課程編碼對照表的數(shù)據(jù)。12一月2023229.3利用實體框架訪問數(shù)據(jù)庫EntityDataSource控件數(shù)據(jù)源控件為數(shù)據(jù)綁定控件構造了一個公共接口,其內部自動實現(xiàn)豐富的數(shù)據(jù)檢索和修改功能,包括查詢、排序、分頁、篩選、更新、刪除以及插入等,而不需要開發(fā)人員去編寫針對這些功能的代碼。共提供7種數(shù)據(jù)源控件,分別是En
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京鏈家購房合同范本
- 產品攝影廣告合同范例
- 劇目買斷合同范本
- 融資收費合同范本
- 勞動合同范本解除
- 單位車輛外包服務合同范本
- 分期出租房合同范本
- 醫(yī)療服務協(xié)議合同范本
- 單位招聘保安合同范本
- 分項付款合同范本
- PySide學習教程
- 數(shù)據(jù)結構英文教學課件:chapter1 Introduction
- 人教三年級數(shù)學下冊表格式全冊
- 事業(yè)單位綜合基礎知識考試題庫 綜合基礎知識考試題庫.doc
- 優(yōu)秀教研組評比制度及實施細則
- 譯林初中英語教材目錄
- 物業(yè)交付后工程維修工作機制
- 農作物病蟲害專業(yè)化統(tǒng)防統(tǒng)治管理辦法
- JJF 1752-2019全自動封閉型發(fā)光免疫分析儀校準規(guī)范(高清版)
- GB 1886.300-2018 食品安全國家標準 食品添加劑 離子交換樹脂(高清版)
- 食品經營單位經營場所和設備布局、操作流程示意圖模板
評論
0/150
提交評論