前臺(tái)用戶(hù)登錄 電子商務(wù)案例分析與解決方案 教學(xué)課件_第1頁(yè)
前臺(tái)用戶(hù)登錄 電子商務(wù)案例分析與解決方案 教學(xué)課件_第2頁(yè)
前臺(tái)用戶(hù)登錄 電子商務(wù)案例分析與解決方案 教學(xué)課件_第3頁(yè)
前臺(tái)用戶(hù)登錄 電子商務(wù)案例分析與解決方案 教學(xué)課件_第4頁(yè)
前臺(tái)用戶(hù)登錄 電子商務(wù)案例分析與解決方案 教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)習(xí)情境4 前臺(tái)用戶(hù)登錄廖黎莉任務(wù)描述在三層體系結(jié)構(gòu)中訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)實(shí)現(xiàn)“迅捷網(wǎng)站前臺(tái)用戶(hù)登錄功能4.1在三層體系結(jié)構(gòu)中訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)實(shí)體類(lèi)數(shù)據(jù)訪問(wèn)層(數(shù)據(jù)表)業(yè)務(wù)邏輯層實(shí)體類(lèi)表示層用戶(hù)輸入1.數(shù)據(jù)實(shí)體類(lèi)三層之間的數(shù)據(jù)傳遞是通過(guò)傳輸數(shù)據(jù)實(shí)體類(lèi)對(duì)象來(lái)實(shí)現(xiàn)的。數(shù)據(jù)實(shí)體類(lèi)的定義:數(shù)據(jù)庫(kù)中的某張表用面向?qū)ο蟮乃枷氤橄蟪深?lèi),使數(shù)據(jù)作為對(duì)象來(lái)使用。數(shù)據(jù)實(shí)體類(lèi)的使用:表示層:實(shí)例化數(shù)據(jù)實(shí)體類(lèi)對(duì)象,將輸入的數(shù)據(jù)作為實(shí)體類(lèi)對(duì)象的屬性,傳遞給業(yè)務(wù)邏輯業(yè)務(wù)邏輯層:傳遞實(shí)體類(lèi)給表示層或數(shù)據(jù)訪問(wèn)層數(shù)據(jù)訪問(wèn)層:將數(shù)據(jù)實(shí)體類(lèi)對(duì)象中的數(shù)據(jù)提取出來(lái)保存到數(shù)據(jù)庫(kù)。創(chuàng)立數(shù)據(jù)實(shí)體類(lèi)工程步驟一:在“解決方案資源管理器中,右鍵單擊選

2、擇“添加-“新建工程。步驟二:選擇模板類(lèi)型為“類(lèi)庫(kù),工程名稱(chēng)為“models,工程類(lèi)型為“C#。步驟三:在web、bll、dal三個(gè)工程中分別添加對(duì)models的引用。步驟四:在models工程中添加實(shí)體類(lèi)文件user .cs。步驟五:在models工程中添加實(shí)體類(lèi)文件userrole . cs。步驟六:在models工程中添加實(shí)體類(lèi)文件userstate .cs。為什么要添加引用?只有添加引用后,才可使用該工程下的類(lèi)對(duì)象。2.數(shù)據(jù)訪問(wèn)層數(shù)據(jù)訪問(wèn)層DAL封裝了所有與SQL SERVER數(shù)據(jù)庫(kù)交互的操作,這些操作都是基于ADO.NET實(shí)現(xiàn)的。表名+serviceSystem.data提供的根本類(lèi)

3、。數(shù)據(jù)庫(kù)好比水源,存儲(chǔ)了大量的數(shù)據(jù)。Connection好比伸入水中的進(jìn)水籠頭,保持與水的接觸,只有它與水進(jìn)行了“連接,其他對(duì)象才可以抽到水。 Command那么像抽水機(jī),為抽水提供動(dòng)力和執(zhí)行方法,通過(guò)“水龍頭,然后把水返給上面的“水管。DataAdapter、DataReader就像輸水管,擔(dān)任著水的傳輸任務(wù),并起著橋梁的作用。DataAdapter 像一根輸水管,通過(guò)發(fā)動(dòng)機(jī),把水從水源輸送到水庫(kù)里進(jìn)行保存。DataReader 也是一種水管,和DataAdapter不同的是,DataReader不把水輸送到水庫(kù)里面,而是單向地直接把水送到需要水的用戶(hù)那里或田地里,所以要比在水庫(kù)中轉(zhuǎn)一下更快

4、更高效。DataSet那么是一個(gè)大水庫(kù),把抽上來(lái)的水按一定關(guān)系的池子進(jìn)行存放。即使撤掉“抽水裝置斷開(kāi)連接,離線(xiàn)狀態(tài),也可以保持“水的存在。這也正是ADO.NET的核心。DataTable那么像水庫(kù)中的每個(gè)獨(dú)立的水池子,分別存放不同種類(lèi)的水。一個(gè)大水庫(kù)由一個(gè)或多個(gè)這樣的水池子組成。 Connection對(duì)象用于建立與數(shù)據(jù)庫(kù)的連接。建立數(shù)據(jù)庫(kù)連接時(shí),需要指明數(shù)據(jù)庫(kù)效勞器、數(shù)據(jù)庫(kù)名字、用戶(hù)名、密碼,和連接數(shù)據(jù)庫(kù)所需要的其它參數(shù)。Connection對(duì)象會(huì)被Command對(duì)象使用,這樣就能夠知道是在哪個(gè)數(shù)據(jù)源上面執(zhí)行命令。 屬 性說(shuō) 明ConnectionString執(zhí)行Open方法連接數(shù)據(jù)源的字符串

5、Database將要打開(kāi)數(shù)據(jù)庫(kù)的名稱(chēng)DataSource包含數(shù)據(jù)庫(kù)的位置和文件State顯示當(dāng)前Connection對(duì)象的狀態(tài)屬 性說(shuō) 明open打開(kāi)連接close關(guān)閉連接數(shù)據(jù)庫(kù)操作對(duì)于一個(gè)web應(yīng)用系統(tǒng)來(lái)說(shuō)是非常頻繁的,因此將常用的數(shù)據(jù)庫(kù)操作封裝在一個(gè)數(shù)據(jù)庫(kù)通用類(lèi)中是非常必要的,一般取名為“DBHelper。在web.config文件中參加SqlConnection connection= new SqlConnection();connection.ConnectionString=“Server=(local)SqlExpress;+ “Database=SportShop; +“Use

6、r ID=sa; Password=sa*123;其中Server可以用Data Source或Data Server來(lái)代替,Initial Catalog代替Database。用戶(hù)授權(quán)信息Server認(rèn)證模式Windows認(rèn)證模式只讀屬性字段OOP術(shù)語(yǔ)類(lèi):是對(duì)數(shù)據(jù)以及數(shù)據(jù)依賴(lài)的功能進(jìn)行的封裝,人對(duì)象:類(lèi)的一個(gè)實(shí)例,張三字段:用于保存值的成員變量方法:對(duì)對(duì)象進(jìn)行操作的實(shí)際代碼段,各種成員函數(shù)和結(jié)構(gòu)類(lèi)型都可以稱(chēng)為方法,睡覺(jué) 構(gòu)造函數(shù):特殊的方法,用于創(chuàng)立對(duì)象時(shí)初始化對(duì)象,眼睛、鼻子 屬性:特殊的方法,使用時(shí)類(lèi)似于字段,但能控制訪問(wèn),實(shí)現(xiàn)更好的封裝實(shí)例成員:屬于類(lèi)的實(shí)例對(duì)象所有可以是方法、字段靜態(tài)

7、成員:屬于類(lèi)所有可以是方法、字段,只能訪問(wèn)類(lèi)的靜態(tài)成員Public、 private、 protected修飾符的區(qū)別:1、public:說(shuō)明該數(shù)據(jù)成員、成員函數(shù)是對(duì)所有用戶(hù)開(kāi)放的,所有用戶(hù)都可以直接進(jìn)行調(diào)用 2、 private :表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財(cái)產(chǎn)神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。 3、 protected :對(duì)于子女、朋友來(lái)說(shuō),就是public的,可以自由使用,沒(méi)有任何限制,而對(duì)于其他的外部class, protected就變成private 。Static靜態(tài)數(shù)據(jù)的特點(diǎn):該變量在全局?jǐn)?shù)據(jù)區(qū)分配內(nèi)存,而不是保存在

8、棧中,每次的值保持到下一次調(diào)用,直到下次賦新值。 Command對(duì)象使用Connection 對(duì)象與數(shù)據(jù)源建立連接后,可使用Command 對(duì)象對(duì)數(shù)據(jù)源執(zhí)行查詢(xún)、添加、刪除和修改等各種操作,操作實(shí)現(xiàn)的方法可以使用SQL語(yǔ)句,也可以使用存儲(chǔ)過(guò)程。 屬 性說(shuō) 明CommandType獲取或設(shè)置Command對(duì)象要執(zhí)行命令的類(lèi)型CommandText獲取或設(shè)置對(duì)數(shù)據(jù)源執(zhí)行的SQL語(yǔ)句或存儲(chǔ)過(guò)程名或表名CommandTimeOut獲取或設(shè)置在終止對(duì)執(zhí)行命令的嘗試并生成錯(cuò)誤之前的等待時(shí)間parametersSQL命令參數(shù)集合Connection獲取或設(shè)置此Command 對(duì)象使用的Connection對(duì)

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

10、DataSet可以存儲(chǔ)數(shù)據(jù)庫(kù)各種對(duì)象的,比方表觸發(fā)器等,而DataReader只能存儲(chǔ)游標(biāo)記錄。DataSet可以更新回原來(lái)的數(shù)據(jù)庫(kù),DataReader不行。 DataSet類(lèi)比DataReader類(lèi)有更多的功能,這就可以讓你在更多的情況下運(yùn)用它們。但這并不意味著你總是在用DataSet類(lèi)。你需要在ASP.NET中完成的相當(dāng)大一局部的任務(wù)都屬于DataReader的范疇。 DataAdapter對(duì)象創(chuàng)立數(shù)據(jù)庫(kù)連接創(chuàng)立命令對(duì)象用DadaAdapter翻開(kāi)連接并讀取數(shù)據(jù)將返回的數(shù)據(jù)保存到DataSet組件應(yīng)用程序離線(xiàn)處理數(shù)據(jù)將更新后的數(shù)據(jù)保存回?cái)?shù)據(jù)庫(kù)屬 性說(shuō) 明SelectedCommand從數(shù)

11、據(jù)庫(kù)中檢索數(shù)據(jù)InsertCommand向數(shù)據(jù)庫(kù)插入數(shù)據(jù)DeleteCommand刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)UpdateCommand更新數(shù)據(jù)庫(kù)的數(shù)據(jù)方 法說(shuō) 明SqlDataAdapter方法構(gòu)造函數(shù),創(chuàng)建SqlDataAdapter對(duì)象,并設(shè)置相應(yīng)的屬性。Fill方法從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),用來(lái)填充或刷新DataSet對(duì)象,返回受影響的行數(shù)。Update方法檢查DataSet對(duì)象中是否發(fā)生改變,并將改變提交到數(shù)據(jù)庫(kù)中,返回受影響的行數(shù)。DataSet對(duì)象DataSet:數(shù)據(jù)集是內(nèi)存中的一個(gè)虛擬數(shù)據(jù)庫(kù)。 DataSet的主要作用:將數(shù)據(jù)庫(kù)中取出來(lái)的數(shù)據(jù)緩存在內(nèi)存中。 DataSet由一組DataTabl

12、e對(duì)象組成 。屬 性說(shuō) 明Tables屬性數(shù)據(jù)集中包含的數(shù)據(jù)表的集合。Ralations屬性數(shù)據(jù)集中包含的數(shù)據(jù)聯(lián)系的集合。DataSetName屬性用于獲取或設(shè)置當(dāng)前數(shù)據(jù)集的名稱(chēng)。HasErrors屬性用于判斷當(dāng)前數(shù)據(jù)集中是否存在錯(cuò)誤。方 法說(shuō) 明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方法撤銷(xiāo)數(shù)據(jù)集中所有的更改。以下情況使用DataSet在結(jié)果的多個(gè)離散表之間進(jìn)行導(dǎo)航。操作來(lái)自多個(gè)數(shù)據(jù)源例如,

13、來(lái)自多個(gè)數(shù)據(jù)庫(kù)、一個(gè)XML文件和一個(gè)電子表格的混合數(shù)據(jù)的數(shù)據(jù)。重用同樣的記錄集合,以便通過(guò)緩存獲得性能改善例如排序、搜索或篩選數(shù)據(jù)。每條記錄都需要執(zhí)行大量處理。對(duì)使用DataReader返回的每一行進(jìn)行擴(kuò)展處理會(huì)延長(zhǎng)效勞于DataReader的連接的必要時(shí)間,這影響了性能。DataSet舉例創(chuàng)立一個(gè)sql connection對(duì)象創(chuàng)立一個(gè)sql dataadapter對(duì)象設(shè)置dataadapter的selectcommand屬性創(chuàng)立一個(gè)dataset對(duì)象填充dataset對(duì)象,表名為vote返回datatable類(lèi)型的結(jié)果Datareader對(duì)象使用datareader類(lèi)可以實(shí)現(xiàn)對(duì)特定數(shù)據(jù)源中

14、的數(shù)據(jù)進(jìn)高速、只讀、只向前的數(shù)據(jù)訪問(wèn)。Datareader是依賴(lài)與連接的對(duì)象,只能在與數(shù)據(jù)源保持連接的狀態(tài)下工作。讀取數(shù)據(jù)的步驟:創(chuàng)立連接connection對(duì)象創(chuàng)立command對(duì)象調(diào)用comand對(duì)象的executereader方法執(zhí)行查詢(xún)使用datareader對(duì)象的read方法讀取數(shù)據(jù)關(guān)閉datareader對(duì)象關(guān)閉command對(duì)象關(guān)閉connection對(duì)象屬 性說(shuō) 明hasrows是否返回了結(jié)果FieldCount獲取當(dāng)前行的列數(shù)Item索引器屬性,以原始格式獲得一列的值方 法說(shuō) 明Read使DataReader對(duì)象前進(jìn)到下一條記錄(如果有)Close關(guān)閉DataReader對(duì)象

15、。注意,關(guān)閉閱讀器對(duì)象并不會(huì)自動(dòng)關(guān)閉底層連接Get用來(lái)讀取數(shù)據(jù)集的當(dāng)前行的某一列的數(shù)據(jù)數(shù)據(jù)NextResult當(dāng)讀取批處理 SQL 語(yǔ)句的結(jié)果時(shí),使數(shù)據(jù)讀取器前進(jìn)到下一個(gè)結(jié)果以下情況使用DataReader不需要緩存數(shù)據(jù)。要處理的結(jié)果集太大,內(nèi)存中放不下。一旦需要以?xún)H向前、只讀方式快速訪問(wèn)數(shù)據(jù)。DataReader舉例創(chuàng)立一個(gè)sql connection對(duì)象創(chuàng)立一個(gè)sql command對(duì)象通過(guò)executereader執(zhí)行命令將命令執(zhí)行后提取的記錄集存放在sqldatareader對(duì)象中將sqldatareader對(duì)象作為結(jié)果返回UserService類(lèi)進(jìn)行完數(shù)據(jù)庫(kù)操作之后,一定要及時(shí)關(guān)閉U

16、serStateService類(lèi)UserRoleService類(lèi)3.業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層的類(lèi)通常負(fù)責(zé)數(shù)據(jù)的傳遞和業(yè)務(wù)邏輯的處理,一般命名為“數(shù)據(jù)庫(kù)表名+manager。業(yè)務(wù)層需要提供哪些方法是根據(jù)實(shí)際業(yè)務(wù)需求來(lái)確定的。只操作數(shù)據(jù)訪問(wèn)層方法和實(shí)體對(duì)象4.表示層Web頁(yè)面利用各種控件來(lái)顯示與接收數(shù)據(jù),提供所有與用戶(hù)進(jìn)行交互的界面。Web工程內(nèi)容:Admin:存放管理相關(guān)頁(yè)面Aspnet_client:客戶(hù)端javascript腳本Controls:用戶(hù)控件Css:css層疊樣式表文件Datepicker:日期選擇器Images:圖片Tools:存放實(shí)現(xiàn)類(lèi)型轉(zhuǎn)換、獲取URL地址并跳轉(zhuǎn)等功能的類(lèi)文件Membership:存放網(wǎng)站前臺(tái)用戶(hù)注冊(cè)、登錄等功能的頁(yè)面。4.2實(shí)現(xiàn)“迅捷網(wǎng)站前臺(tái)用戶(hù)登錄用戶(hù)登錄功能過(guò)程分析用戶(hù)登錄的表示層實(shí)現(xiàn)用戶(hù)登錄功能過(guò)程分析表示層前臺(tái)web頁(yè)面Userlogin.aspx表示層后臺(tái)代碼業(yè)務(wù)邏輯層Usermanager.cs數(shù)據(jù)訪問(wèn)層Userservice.csDbhelper.cs用戶(hù)登錄登錄按鈕,單擊事件過(guò)程調(diào)用業(yè)務(wù)邏輯層Usermanager提供的login方法調(diào)用數(shù)據(jù)訪問(wèn)層Userservice提供的Getuserbyloginid方法數(shù)據(jù)庫(kù)訪問(wèn)數(shù)據(jù)庫(kù)展示處理結(jié)果根據(jù)業(yè)務(wù)邏輯層返回的結(jié)果進(jìn)行不同的處

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論