版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第7章數(shù)據(jù)訪問
2要點:掌握VisualStudio2010中管理數(shù)據(jù)庫的方法熟練使用數(shù)據(jù)源控件AccessDataSource數(shù)據(jù)源控件、SqlDataSource數(shù)據(jù)源控件、ObjectDataSource、XmlDataSource控件、SiteMapDataSource控件;熟練掌握數(shù)據(jù)綁定控件的使用掌握ListControl類控件與數(shù)據(jù)源的綁定;掌握GridView控件與數(shù)據(jù)源的綁定;掌握DetailsView控件與數(shù)據(jù)源的綁定。37.1數(shù)據(jù)訪問概述ASP.NET1.X主要使用ADO.NET訪問數(shù)據(jù)。ADO.NET提供了用于完成如數(shù)據(jù)庫連接、查詢數(shù)據(jù)、插入數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)等操作的對象。
Connection對象Command對象DataReader對象DataAdapter對象DataSet對象442024/5/9ADO.NET的對象Connection對象:用來連接到數(shù)據(jù)庫。Command對象:用來對數(shù)據(jù)庫執(zhí)行SQL命令,如查詢語句。DataReader對象:用來從數(shù)據(jù)庫返回只讀數(shù)據(jù)。DataAdapter對象:用來從數(shù)據(jù)庫返回數(shù)據(jù),并送到Dataset對象中,還要負責(zé)保證Dataset對象中的數(shù)據(jù)和數(shù)據(jù)庫中的數(shù)據(jù)保持一致。DataSet對象:它可以看做是內(nèi)存中的數(shù)據(jù)庫。利用DataAdapter對象將數(shù)據(jù)庫中的數(shù)據(jù)送到該對象中,然后就可以在其中對數(shù)據(jù)進行各種操作,最后再利用DataAdapter對象將更新反映到數(shù)據(jù)庫中。5ADO.NET兩種讀取數(shù)據(jù)庫的方式一種是利用Connetction、Command和DataReader對象,這種方式只能讀取數(shù)據(jù)庫,也就是說不能修改記錄。如果只是想查詢記錄的話,此方式的效率更高些。(保持連接模式)第二種是利用Connection、Command、DataAdapter和Dataset對象,這種方式更靈活,可以對數(shù)據(jù)庫進行各種操作。(斷開連接模式)662024/5/9ADO.NET兩種讀取數(shù)據(jù)庫的視圖77.2建立SQLServerExpress數(shù)據(jù)庫SQLServerExpress2008與VisualStudio2010緊密集成。與允許建立網(wǎng)站時直接在VisualStudio2010的開發(fā)環(huán)境中創(chuàng)建并管理數(shù)據(jù)庫。利用VisualStudio2010中“服務(wù)器資源管理器”管理SQLServer數(shù)據(jù)庫。87.3數(shù)據(jù)源控件用于實現(xiàn)從不同數(shù)據(jù)源獲取數(shù)據(jù)的功能。9數(shù)據(jù)源控件和數(shù)據(jù)綁定控件開發(fā)人員能夠智能的配置與數(shù)據(jù)庫的連接,而不需要手動的編寫數(shù)據(jù)庫連接。ASP.NET不僅提供了數(shù)據(jù)源控件,還提供了能夠顯示數(shù)據(jù)的控件,簡化了數(shù)據(jù)顯示的開發(fā)。數(shù)據(jù)源控件封裝所有獲取和處理數(shù)據(jù)的功能,主要包括連接數(shù)據(jù)源、使用Select、Update、Delete和Insert等SQL語句獲取和管理數(shù)據(jù)等。數(shù)據(jù)綁定控件主要用于以多種方式顯示數(shù)據(jù)。結(jié)合使用數(shù)據(jù)源控件和數(shù)據(jù)綁定控件,只需要設(shè)置相關(guān)屬性,幾乎不用編寫任何代碼即能存取數(shù)據(jù)庫。10
數(shù)據(jù)源控件簡介
數(shù)據(jù)源控件的類型主要有以下幾種。
1.AccessDataSourceAccessDataSource數(shù)據(jù)源控件是專門為連接MicrosoftAccess數(shù)據(jù)庫而設(shè)計的。
2.SqlDataSourceSqlDataSource數(shù)據(jù)源控件是專門為連接MicrosoftSQLServer數(shù)據(jù)庫而設(shè)計的。
3.ObjectDataSource主要用在三層分布式架構(gòu)時,將中間層的邏輯功能封裝到這個控件中,以便在應(yīng)用程序中共享。
數(shù)據(jù)源控件用來配置數(shù)據(jù)源,當(dāng)數(shù)據(jù)控件綁定數(shù)據(jù)源控件時,就能夠通過數(shù)據(jù)庫源控件來獲取數(shù)據(jù)源中的數(shù)據(jù)并顯示,而無需通過程序?qū)崿F(xiàn)數(shù)據(jù)源代碼。
11
ASP.NET包含兩個層次數(shù)據(jù)源控件:用于連接XML文件的XmlDataSource和用于連接站點導(dǎo)航數(shù)據(jù)的SiteMapDataSource。4.XmlDataSource
XmlDataSource控件可將一個XML文件綁定到一個用于顯示層次結(jié)構(gòu)的TreeView控件上。
5.SiteMapDataSource127.3.1SqlDataSource控件用來訪問Access、SQLServer、SQLServerExpress、Oracle、ODBC數(shù)據(jù)源和OLEDB數(shù)據(jù)源。要訪問帶密碼的Access數(shù)據(jù)庫,就不能使用AccessDataSource,只能使用SqlDataSource控件。 <asp:SqlDataSourceID="SqlDataSource1"runat="server"></asp:SqlDataSource>13SqlDataSource常用屬性表ConnectionString獲取或設(shè)置連接到數(shù)據(jù)庫的字符串。DataSourceMode獲取或設(shè)置獲取數(shù)據(jù)時所使用的數(shù)據(jù)返回模式。值DataReader表示獲取只讀數(shù)據(jù);值為DataSet表示獲取數(shù)據(jù)可更改。默認值為DataSet。DeleteCommand獲取或設(shè)置用于刪除數(shù)據(jù)的SQL語句或存儲過程名。DeleteCommandType獲取或設(shè)置屬性DeleteCommand值的類型。Text表示SQL語句;StoreProcedure表示存儲過程。默認值為Text。DeleteParameters獲取DeleteCommand值中出現(xiàn)的參數(shù)集合。DeleteQuery設(shè)置Delete命令使用的參數(shù)。14SqlDataSource常用屬性表(續(xù))EnableCaching邏輯值,true表示啟用數(shù)據(jù)緩存功能,false表示不啟用。默認值為false。InsertCommand獲取或設(shè)置用于插入數(shù)據(jù)的SQL語句或存儲過程名。InsertCommandType獲取或設(shè)置屬性InsertCommand值的類型。InsertParameters獲取屬性InsertCommand值中出現(xiàn)的參數(shù)集合。InsertQuery設(shè)置Insert語句使用的參數(shù)。ProviderName獲取或設(shè)置連接數(shù)據(jù)源的提供程序名稱。15SqlDataSource常用屬性表(續(xù))SelectCommand獲取或設(shè)置用于查詢數(shù)據(jù)的SQL語句或存儲過程名。SelectCommandType獲取或設(shè)置屬性SelectCommand值的類型。SelectParameters獲取SelectCommand值中出現(xiàn)的參數(shù)集合。SelectQuery設(shè)置Select語句使用的參數(shù)。
UpdateCommand獲取或設(shè)置用于更新數(shù)據(jù)的SQL語句或存儲過程。UpdateCommandType獲取或設(shè)置UpdateCommand值的類型。UpdateParameters獲取屬性UpdateCommand值中出現(xiàn)的參數(shù)集合。UpdateQuery設(shè)置Update命令使用的參數(shù)。16連接數(shù)據(jù)庫使用SqlDataSource連接數(shù)據(jù)源不需要編寫代碼,只需按“配置數(shù)據(jù)源”向?qū)е鸩皆O(shè)置就可以了。17數(shù)據(jù)連接說明下拉列表框會列出存儲在App_Data文件夾中的數(shù)據(jù)庫名和存儲在web.config文件的<connectionStrings>配置節(jié)中的數(shù)據(jù)連接名。連接字符串包括數(shù)據(jù)庫信息和身份驗證信息。
DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyPetShop.mdf;
Integrated
Security=True;User
Instance=True
指示要連接到的數(shù)據(jù)源的名稱連接是否為安全連接附加的數(shù)據(jù)庫文件名稱指示是否將連接重定向,以連接到該用戶賬戶下運行的SQLServer實例18連接字符串存放位置說明在web.config的<connectionStrings>配置節(jié)中<connectionStrings><addname="MyPetShopConnectionString"connectionString="DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyPetShop.mdf; IntegratedSecurity=True;UserInstance=True"providerName="System.Data.SqlClient"/></connectionStrings>19
Access數(shù)據(jù)庫是一種桌面級的數(shù)據(jù)庫,對其訪問可使用專門的數(shù)據(jù)源控件AccessDataSource。與SqlDataSource不同的是,SqlDataSource主要采用的是ConnectionString屬性連接數(shù)據(jù)庫,而Access則采用的是AccessDataSource方式連接數(shù)據(jù)庫。因為Access數(shù)據(jù)庫是以文件的形式存在于系統(tǒng)中的,所以主要采用DataFile屬性直接以文件地址的方式進行連接。要連接Access數(shù)據(jù)庫,則必須選擇Access數(shù)據(jù)庫文件。7.3.2AccessDataSource控件20AccessDataSource控件當(dāng)需要使用Access數(shù)據(jù)庫,應(yīng)將Access數(shù)據(jù)庫文件保存在App_Data文件夾中,以保證數(shù)據(jù)庫文件是私有的,因為ASP.NET不允許直接請求App_Data文件夾。注意:AccessDataSource控件不支持訪問受密碼保護的Access數(shù)據(jù)庫文件,如果需要訪問受密碼保護的Access數(shù)據(jù)庫文件,則需要使用SqlDataSource控件。21連接失敗連接數(shù)據(jù)庫失敗是程序開發(fā)中常有的情形。造成失敗的原因有連接字符串設(shè)置錯誤、數(shù)據(jù)庫服務(wù)未啟動、網(wǎng)絡(luò)問題等。此時,需要給用戶適當(dāng)?shù)某鲥e提示信息。22例:使用SqlDataSource控件連接到SQLServer數(shù)據(jù)庫,并把獲得的數(shù)據(jù)顯示在DropDownList控件中。23實例7-1連接失敗的處理當(dāng)數(shù)據(jù)庫連接正常時在下拉列表中填充“Category”表的“Name”字段信息。當(dāng)數(shù)據(jù)庫連接失敗時返回出錯信息。源程序:FailtureConn.aspx程序說明:當(dāng)SqlDataSource控件執(zhí)行Select命令之后,將觸發(fā)Selected事件,并且拋出任何異常信息。因此,數(shù)據(jù)庫連接失敗的處理可在Selected事件中捕獲異常,再顯示出錯信息并通知SqlDataSource控件已處理異常。24SqlDataSource的參數(shù)綁定在Select、Insert、Delete、Update等數(shù)據(jù)操作時允許使用參數(shù)。25SqlDataSource參數(shù)綁定的數(shù)據(jù)來源ControlParameter:實現(xiàn)控件屬性值與參數(shù)的綁定。QueryStringParameter:實現(xiàn)QueryString對象值與參數(shù)的綁定。
FormParameter:實現(xiàn)表單域的值與參數(shù)的綁定。CookieParameter:實現(xiàn)Cookie對象值與參數(shù)的綁定。SessionParameter:實現(xiàn)Session對象與參數(shù)的綁定。26實例7-2實現(xiàn)SqlDataSource控件的參數(shù)綁定
當(dāng)選擇寵物類別后,列表框中將顯示該類別的所有產(chǎn)品。源程序:SqlDSParameters.aspx
程序說明:本示例不用編寫任何代碼,所有操作都通過屬性設(shè)置實現(xiàn)。27利用SqlDataSource設(shè)置的SQL語句管理數(shù)據(jù)
在數(shù)據(jù)源配置時除可設(shè)定Select語句外,還可組合Insert、Update和Delete語句。設(shè)定的Select語句在網(wǎng)頁有數(shù)據(jù)顯示時即被執(zhí)行,不需要調(diào)用相應(yīng)的方法執(zhí)行,而設(shè)定的Insert、Update和Delete語句必須調(diào)用相應(yīng)的方法才能被執(zhí)行。例如,Insert語句的執(zhí)行應(yīng)調(diào)用SqlDataSource控件的Insert()方法。28實例7-3利用SqlDataSource插入數(shù)據(jù)當(dāng)輸入“分類名”、“描述”等信息,單擊“插入并顯示”后,將把數(shù)據(jù)信息插入到Category表,然后在GridView中顯示表中所有數(shù)據(jù)。源程序:SqlDSInsert.aspx
程序說明:單擊按鈕時將調(diào)用Insert()方法,從而執(zhí)行SqlDataSource中設(shè)置的Insert語句,實現(xiàn)數(shù)據(jù)插入功能。然后再執(zhí)行SqlDataSource中設(shè)置的Select語句,返回Category表中所有數(shù)據(jù)并在GridView中顯示出來。297.3.3XmlDataSource控件訪問的是“層次化數(shù)據(jù)”,常用于連接和訪問XML數(shù)據(jù)源中的數(shù)據(jù)。屬性DataFile:用于設(shè)置要綁定的XML文件名。對于能顯示層次化數(shù)據(jù)的控件有TreeView、Menu等,只需設(shè)置這些控件的屬性DataSourceID值,即能顯示XMLDataSource中的XML數(shù)據(jù)。30例:使用XmlDataSource數(shù)據(jù)源控件,結(jié)合TreeView控件和容器控件PlaceHolder,設(shè)計一個以樹型結(jié)構(gòu)用于查看員工基本情況的Web應(yīng)用程序。1、創(chuàng)建xml文件2、向aspx中添加XmlDataSource控件、TreeView控件、PlaceHolder控件。3、設(shè)XmlDataSource控件數(shù)據(jù)源為前面創(chuàng)建的*.xml文件;4、設(shè)TreeView控件的數(shù)據(jù)源為XmlDataSource控件5、編寫程序(TreeView1_SelectedNodeChanged事件)31界面設(shè)計:32運行效果:3334實例7-6在GridView中顯示XML文件源程序:books.xml源程序:books.xsl源程序:XmlDSGridView.aspx
357.3.4SiteMapDataSource控件用于訪問XML格式的網(wǎng)站地圖文件Web.sitemap,再將數(shù)據(jù)源綁定到TreeView、SiteMapPath或Menu等控件即能顯示網(wǎng)站地圖文件內(nèi)容。當(dāng)與SiteMapPath控件綁定時,不需要聲明SiteMapDataSource,系統(tǒng)會自動實現(xiàn)綁定。不需要設(shè)置連接數(shù)據(jù)源的屬性。36(1)創(chuàng)建web.sitemap文件---建在站點根目錄下37(2)創(chuàng)建aspx文件,并添加TreeView控件,為其選擇數(shù)據(jù)源
新建數(shù)據(jù)源,選擇站點地圖,系統(tǒng)會自動添加一個SiteMapSo
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年手機行業(yè)退貨三包服務(wù)規(guī)范合同樣本3篇
- 2025年物流運輸掛靠車輛運輸合同范本3篇
- 砌塊工程施工方案
- 2025年行政訴訟上訴狀編寫規(guī)范:全面指導(dǎo)版3篇
- 二零二五版科技園區(qū)研發(fā)樓租賃續(xù)約4篇
- 二零二五版門店合伙人風(fēng)險管理與責(zé)任承擔(dān)合同4篇
- 2024年中級經(jīng)濟師考試題庫含答案(輕巧奪冠)
- 浮筏施工方案
- 2025年度養(yǎng)老產(chǎn)業(yè)項目貸款擔(dān)保合同范文3篇
- 2025年度個人網(wǎng)絡(luò)安全服務(wù)買賣合同(數(shù)據(jù)保護)4篇
- 《健康體檢知識》課件
- 部編版語文五年級下冊 第一單元 專項訓(xùn)練課外閱讀(含答案)
- 蘇少版七年級美術(shù)下冊 全冊
- 名表買賣合同協(xié)議書
- JTG-T-F20-2015公路路面基層施工技術(shù)細則
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 中西方校服文化差異研究
- 《子宮肉瘤》課件
- 《準媽媽衣食住行》課件
- 給男友的道歉信10000字(十二篇)
- 客人在酒店受傷免責(zé)承諾書范本
評論
0/150
提交評論