第四章 前臺(tái)用戶登錄_第1頁
第四章 前臺(tái)用戶登錄_第2頁
第四章 前臺(tái)用戶登錄_第3頁
第四章 前臺(tái)用戶登錄_第4頁
第四章 前臺(tái)用戶登錄_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué)習(xí)情境4前臺(tái)用戶登錄廖黎莉任務(wù)描述在三層體系結(jié)構(gòu)中訪問數(shù)據(jù)庫中的數(shù)據(jù)實(shí)現(xiàn)“迅捷”網(wǎng)站前臺(tái)用戶登錄功能4.1在三層體系結(jié)構(gòu)中訪問數(shù)據(jù)庫數(shù)據(jù)實(shí)體類數(shù)據(jù)訪問層(數(shù)據(jù)表)業(yè)務(wù)邏輯層(實(shí)體類)表示層(用戶輸入)1.數(shù)據(jù)實(shí)體類三層之間的數(shù)據(jù)傳遞是通過傳輸數(shù)據(jù)實(shí)體類對(duì)象來實(shí)現(xiàn)的。數(shù)據(jù)實(shí)體類的定義:數(shù)據(jù)庫中的某張表用面向?qū)ο蟮乃枷氤橄蟪深?,使?shù)據(jù)作為對(duì)象來使用。數(shù)據(jù)實(shí)體類的使用:表示層:實(shí)例化數(shù)據(jù)實(shí)體類對(duì)象,將輸入的數(shù)據(jù)作為實(shí)體類對(duì)象的屬性,傳遞給業(yè)務(wù)邏輯業(yè)務(wù)邏輯層:傳遞實(shí)體類給表示層或數(shù)據(jù)訪問層數(shù)據(jù)訪問層:將數(shù)據(jù)實(shí)體類對(duì)象中的數(shù)據(jù)提取出來保存到數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)實(shí)體類項(xiàng)目步驟一:在“解決方案資源管理器”中,右鍵單擊選擇“添加”-“新建項(xiàng)目”。步驟二:選擇模板類型為“類庫”,項(xiàng)目名稱為“models”,項(xiàng)目類型為“C#”。步驟三:在web、bll、dal三個(gè)項(xiàng)目中分別添加對(duì)models的引用。步驟四:在models項(xiàng)目中添加實(shí)體類文件user.cs。步驟五:在models項(xiàng)目中添加實(shí)體類文件userrole.cs。步驟六:在models項(xiàng)目中添加實(shí)體類文件userstate.cs。為什么要添加引用?只有添加引用后,才可使用該項(xiàng)目下的類對(duì)象。2.數(shù)據(jù)訪問層數(shù)據(jù)訪問層DAL封裝了所有與SQLSERVER數(shù)據(jù)庫交互的操作,這些操作都是基于ADO.NET實(shí)現(xiàn)的。表名+serviceSystem.data提供的基本類。數(shù)據(jù)庫好比水源,存儲(chǔ)了大量的數(shù)據(jù)。Connection好比伸入水中的進(jìn)水籠頭,保持與水的接觸,只有它與水進(jìn)行了“連接”,其他對(duì)象才可以抽到水。

Command則像抽水機(jī),為抽水提供動(dòng)力和執(zhí)行方法,通過“水龍頭”,然后把水返給上面的“水管”。DataAdapter、DataReader就像輸水管,擔(dān)任著水的傳輸任務(wù),并起著橋梁的作用。DataAdapter

像一根輸水管,通過發(fā)動(dòng)機(jī),把水從水源輸送到水庫里進(jìn)行保存。DataReader

也是一種水管,和DataAdapter不同的是,DataReader不把水輸送到水庫里面,而是單向地直接把水送到需要水的用戶那里或田地里,所以要比在水庫中轉(zhuǎn)一下更快更高效。DataSet則是一個(gè)大水庫,把抽上來的水按一定關(guān)系的池子進(jìn)行存放。即使撤掉“抽水裝置”(斷開連接,離線狀態(tài)),也可以保持“水”的存在。這也正是ADO.NET的核心。DataTable則像水庫中的每個(gè)獨(dú)立的水池子,分別存放不同種類的水。一個(gè)大水庫由一個(gè)或多個(gè)這樣的水池子組成。Connection對(duì)象用于建立與數(shù)據(jù)庫的連接。建立數(shù)據(jù)庫連接時(shí),需要指明數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫名字、用戶名、密碼,和連接數(shù)據(jù)庫所需要的其它參數(shù)。Connection對(duì)象會(huì)被Command對(duì)象使用,這樣就能夠知道是在哪個(gè)數(shù)據(jù)源上面執(zhí)行命令。

性說

明ConnectionString執(zhí)行Open方法連接數(shù)據(jù)源的字符串Database將要打開數(shù)據(jù)庫的名稱DataSource包含數(shù)據(jù)庫的位置和文件State顯示當(dāng)前Connection對(duì)象的狀態(tài)屬

性說

明open打開連接close關(guān)閉連接數(shù)據(jù)庫操作對(duì)于一個(gè)web應(yīng)用系統(tǒng)來說是非常頻繁的,因此將常用的數(shù)據(jù)庫操作封裝在一個(gè)數(shù)據(jù)庫通用類中是非常必要的,一般取名為“DBHelper”。在web.config文件中加入SqlConnectionconnection=newSqlConnection();connection.ConnectionString=“Server=(local)\SqlExpress;”+“Database=SportShop;”+“UserID=sa;Password=sa*123”;其中Server可以用DataSource或DataServer來代替,InitialCatalog代替Database。用戶授權(quán)信息Server認(rèn)證模式Windows認(rèn)證模式只讀屬性字段OOP術(shù)語類:是對(duì)數(shù)據(jù)以及數(shù)據(jù)依賴的功能進(jìn)行的封裝,人對(duì)象:類的一個(gè)實(shí)例,張三字段:用于保存值的成員變量方法:對(duì)對(duì)象進(jìn)行操作的實(shí)際代碼段,各種成員函數(shù)和結(jié)構(gòu)類型都可以稱為方法,睡覺構(gòu)造函數(shù):特殊的方法,用于創(chuàng)建對(duì)象時(shí)初始化對(duì)象,眼睛、鼻子屬性:特殊的方法,使用時(shí)類似于字段,但能控制訪問,實(shí)現(xiàn)更好的封裝實(shí)例成員:屬于類的實(shí)例對(duì)象所有(可以是方法、字段)靜態(tài)成員:屬于類所有(可以是方法、字段),只能訪問類的靜態(tài)成員Public、

private、protected修飾符的區(qū)別:1、public:表明該數(shù)據(jù)成員、成員函數(shù)是對(duì)所有用戶開放的,所有用戶都可以直接進(jìn)行調(diào)用

2、private

:表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財(cái)產(chǎn)神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected

:對(duì)于子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對(duì)于其他的外部class,protected就變成private

。Static(靜態(tài)數(shù)據(jù))的特點(diǎn):該變量在全局?jǐn)?shù)據(jù)區(qū)分配內(nèi)存,而不是保存在棧中,每次的值保持到下一次調(diào)用,直到下次賦新值。Command對(duì)象使用Connection對(duì)象與數(shù)據(jù)源建立連接后,可使用Command對(duì)象對(duì)數(shù)據(jù)源執(zhí)行查詢、添加、刪除和修改等各種操作,操作實(shí)現(xiàn)的方法可以使用SQL語句,也可以使用存儲(chǔ)過程。

性說

明CommandType獲取或設(shè)置Command對(duì)象要執(zhí)行命令的類型CommandText獲取或設(shè)置對(duì)數(shù)據(jù)源執(zhí)行的SQL語句或存儲(chǔ)過程名或表名CommandTimeOut獲取或設(shè)置在終止對(duì)執(zhí)行命令的嘗試并生成錯(cuò)誤之前的等待時(shí)間parametersSQL命令參數(shù)集合Connection獲取或設(shè)置此Command對(duì)象使用的Connection對(duì)象的名稱方

法說

明ExecuteNonQuery執(zhí)行SQL語句并返回受影響的行數(shù)ExecuteScalar執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。忽略其他列或行ExecuteReader執(zhí)行返回?cái)?shù)據(jù)集的SELECT語句創(chuàng)建命令-執(zhí)行命令添加、刪除、更新操作查詢操作,返回第一行,第一列提取數(shù)據(jù)集的方法有連接的:對(duì)象Command與DataReader配合使用無連接的:對(duì)象DataAdapter與DataSet、DataTable配合使用區(qū)別:DataSet可以離線處理,前后滾動(dòng);DataReader不能離線處理,且是只讀的向前的。DataReader速度明顯會(huì)比DataSet快。

DataSet可以存儲(chǔ)數(shù)據(jù)庫各種對(duì)象的,比如表觸發(fā)器等,而DataReader只能存儲(chǔ)游標(biāo)記錄。

DataSet可以更新回原來的數(shù)據(jù)庫,DataReader不行。DataSet類比DataReader類有更多的功能,這就可以讓你在更多的情況下運(yùn)用它們。但這并不意味著你總是在用DataSet類。你需要在ASP.NET中完成的相當(dāng)大一部分的任務(wù)都屬于DataReader的范疇。DataAdapter對(duì)象創(chuàng)建數(shù)據(jù)庫連接創(chuàng)建命令對(duì)象用DadaAdapter打開連接并讀取數(shù)據(jù)將返回的數(shù)據(jù)保存到DataSet組件應(yīng)用程序離線處理數(shù)據(jù)將更新后的數(shù)據(jù)保存回?cái)?shù)據(jù)庫屬性說明SelectedCommand從數(shù)據(jù)庫中檢索數(shù)據(jù)InsertCommand向數(shù)據(jù)庫插入數(shù)據(jù)DeleteCommand刪除數(shù)據(jù)庫中的數(shù)據(jù)UpdateCommand更新數(shù)據(jù)庫的數(shù)據(jù)方法說明SqlDataAdapter方法構(gòu)造函數(shù),創(chuàng)建SqlDataAdapter對(duì)象,并設(shè)置相應(yīng)的屬性。Fill方法從數(shù)據(jù)庫中讀取數(shù)據(jù),用來填充或刷新DataSet對(duì)象,返回受影響的行數(shù)。Update方法檢查DataSet對(duì)象中是否發(fā)生改變,并將改變提交到數(shù)據(jù)庫中,返回受影響的行數(shù)。DataSet對(duì)象DataSet:數(shù)據(jù)集是內(nèi)存中的一個(gè)虛擬數(shù)據(jù)庫。DataSet的主要作用:將數(shù)據(jù)庫中取出來的數(shù)據(jù)緩存在內(nèi)存中。DataSet由一組DataTable對(duì)象組成。屬性說明Tables屬性數(shù)據(jù)集中包含的數(shù)據(jù)表的集合。Ralations屬性數(shù)據(jù)集中包含的數(shù)據(jù)聯(lián)系的集合。DataSetName屬性用于獲取或設(shè)置當(dāng)前數(shù)據(jù)集的名稱。HasErrors屬性用于判斷當(dāng)前數(shù)據(jù)集中是否存在錯(cuò)誤。方法說明Clear方法清除數(shù)據(jù)集包含的所有表中的數(shù)據(jù),但不清除表結(jié)構(gòu)。Reset方法清除數(shù)據(jù)集包含的所有表中的數(shù)據(jù),而且清除表結(jié)構(gòu)。HasChanges方法判斷當(dāng)前數(shù)據(jù)集是否發(fā)生了更改,更改的內(nèi)容包括添加行、修改行或刪除行。RejectChanges方法撤銷數(shù)據(jù)集中所有的更改。以下情況使用DataSet在結(jié)果的多個(gè)離散表之間進(jìn)行導(dǎo)航。操作來自多個(gè)數(shù)據(jù)源(例如,來自多個(gè)數(shù)據(jù)庫、一個(gè)XML文件和一個(gè)電子表格的混合數(shù)據(jù))的數(shù)據(jù)。重用同樣的記錄集合,以便通過緩存獲得性能改善(例如排序、搜索或篩選數(shù)據(jù))。每條記錄都需要執(zhí)行大量處理。對(duì)使用DataReader返回的每一行進(jìn)行擴(kuò)展處理會(huì)延長(zhǎng)服務(wù)于DataReader的連接的必要時(shí)間,這影響了性能。DataSet舉例⑴創(chuàng)建一個(gè)sqlconnection對(duì)象⑵創(chuàng)建一個(gè)sql

dataadapter對(duì)象⑶設(shè)置dataadapter的selectcommand屬性⑷創(chuàng)建一個(gè)dataset對(duì)象⑸填充dataset對(duì)象,表名為vote⑹返回datatable類型的結(jié)果Datareader對(duì)象使用datareader類可以實(shí)現(xiàn)對(duì)特定數(shù)據(jù)源中的數(shù)據(jù)進(jìn)高速、只讀、只向前的數(shù)據(jù)訪問。Datareader是依賴與連接的對(duì)象,只能在與數(shù)據(jù)源保持連接的狀態(tài)下工作。讀取數(shù)據(jù)的步驟:創(chuàng)建連接connection對(duì)象創(chuàng)建command對(duì)象調(diào)用comand對(duì)象的executereader方法執(zhí)行查詢使用datareader對(duì)象的read方法讀取數(shù)據(jù)關(guān)閉datareader對(duì)象關(guān)閉command對(duì)象關(guān)閉connection對(duì)象屬

性說

明hasrows是否返回了結(jié)果FieldCount獲取當(dāng)前行的列數(shù)Item索引器屬性,以原始格式獲得一列的值方

法說

明Read使DataReader對(duì)象前進(jìn)到下一條記錄(如果有)Close關(guān)閉DataReader對(duì)象。注意,關(guān)閉閱讀器對(duì)象并不會(huì)自動(dòng)關(guān)閉底層連接Get用來讀取數(shù)據(jù)集的當(dāng)前行的某一列的數(shù)據(jù)數(shù)據(jù)NextResult當(dāng)讀取批處理

SQL語句的結(jié)果時(shí),使數(shù)據(jù)讀取器前進(jìn)到下一個(gè)結(jié)果以下情況使用DataReader不需要緩存數(shù)據(jù)。要處理的結(jié)果集太大,內(nèi)存中放不下。一旦需要以僅向前、只讀方式快速訪問數(shù)據(jù)。DataReader舉例⑴創(chuàng)建一個(gè)sqlconnection對(duì)象⑵創(chuàng)建一個(gè)sqlcommand對(duì)象⑶通過executereader執(zhí)行命令⑷將命令執(zhí)行后提取的記錄集存放在sqldatareader對(duì)象中⑸將sqldatareader對(duì)象作為結(jié)果返回UserService類進(jìn)行完數(shù)據(jù)庫操作之后,一定要及時(shí)關(guān)閉UserStateService類UserRoleService類3.業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層的類通常負(fù)責(zé)數(shù)據(jù)的傳遞和業(yè)務(wù)邏輯的處理,一般命名為“數(shù)據(jù)庫表名+manager”。業(yè)務(wù)層需要提供哪些方法是根據(jù)實(shí)際業(yè)務(wù)需求來確定的。只操作數(shù)據(jù)訪問層方法和實(shí)體對(duì)象4.表示層Web頁面利用各種控件來顯示與接收數(shù)據(jù),提供所有與用戶進(jìn)行交互的界面。Web項(xiàng)目?jī)?nèi)容:Admin:存放管理相關(guān)頁面Aspnet_client:客戶端javascript腳本Controls:用戶控件Css:css層疊樣式表文件Datepicker:日期選擇器Images:圖片Tools:存放實(shí)現(xiàn)類型轉(zhuǎn)換、獲取URL地址并跳轉(zhuǎn)等功能的類文件Membership:存放網(wǎng)站前臺(tái)用戶注冊(cè)、登錄等功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論