ASNE璇句歡PPT課件

ASNE璇句歡PPT課件

ID:82709499

大?。?.55 MB

頁數(shù):176頁

時間:2022-11-05

上傳者:勝利的果實
ASNE璇句歡PPT課件_第1頁
ASNE璇句歡PPT課件_第2頁
ASNE璇句歡PPT課件_第3頁
ASNE璇句歡PPT課件_第4頁
ASNE璇句歡PPT課件_第5頁
ASNE璇句歡PPT課件_第6頁
ASNE璇句歡PPT課件_第7頁
ASNE璇句歡PPT課件_第8頁
ASNE璇句歡PPT課件_第9頁
ASNE璇句歡PPT課件_第10頁
資源描述:

《ASNE璇句歡PPT課件》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

ASP.Net程序設計1

1目錄第一章ASP.NET概述第二章Web服務器控件第三章ASP.NET內置對象第四章ASP.NET類庫第五章使用ADO.NET訪問數(shù)據庫2

2第一章ASP.NET概述理解B/S編程相關基本概念C/S與B/S結構體系的不同理解靜態(tài)網頁和動態(tài)網頁的不同,及基于客戶端和基于服務器端動態(tài)網頁的不同了解WEB服務器的概念能安裝和配置IIS掌握利用VS2005開發(fā)工具進行網站的發(fā)布3

31.1基本概念——B/S與C/S結構B/S與C/S依據客戶端使用方式的不同,可以將網絡應用系統(tǒng)分為兩大體系,即B/S(Browser/Server)結構體系與C/S(Client/Server)結構體系。C/S系統(tǒng),需要在客戶端開發(fā)應用程序,用戶安裝后在本機使用,通過客戶端程序訪問服務器資源。B/S系統(tǒng),用戶通過瀏覽器訪問服務器資源,用戶不需下載和安裝客戶端軟件。4

4C/SC/S三大缺點客戶端需要安裝專用的客戶端軟件維護成本高對客戶端的操作系統(tǒng)一般也會有限制Windows2000,Xp,VistaLinuxUnix5

5B/SB/S特點不依賴客戶端程序,只要安裝瀏覽器即可(火狐;世界之窗;GreenBrowser;IE;騰訊TT)運行維護比較簡便訪問自由方便最大的缺點是對外網環(huán)境依賴性太強6

6開發(fā)B/S系統(tǒng)的工具我們采用ASP.NET+SQLServer組合工具。7

7三種主要的動態(tài)Web頁面設計工具PHP:HypertextPerprocessorJSP:JavaServerPagesASP.NETASPASP.NETPHPJSP8

81.1基本概念——靜態(tài)網頁和動態(tài)網頁靜態(tài)網頁,動態(tài)網頁主要根據網頁制作的語言來區(qū)分靜態(tài)網頁使用語言:HTML(超文本標記語言)動態(tài)網頁使用語言:HTML+ASP或HTML+PHP或HTML+JSP等。9

9靜態(tài)網頁靜態(tài)網頁完全由HTML(HyperTextMarkup)代碼構成,網頁內容固定不變。特點靜態(tài)網頁每個網頁都有一個固定的URL,且網頁URL以.htm、.html、.shtml等常見形式為后綴,而不含有“?”網頁內容一經發(fā)布到網站服務器上,無論是否有用戶訪問,每個靜態(tài)網頁的內容都是保存在網站服務器上的,也就是說,靜態(tài)網頁是實實在在保存在服務器上的文件,每個網頁都是一個獨立的文件;靜態(tài)網頁的內容相對穩(wěn)定,因此容易被搜索引擎檢索;靜態(tài)網頁沒有數(shù)據庫的支持,在網站制作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態(tài)網頁制作方式比較困難;10

10靜態(tài)網頁這是一個靜態(tài)網頁

早期的靜態(tài)網頁全部由HTML語言組成
靜態(tài)網頁的特點:

  • 靜態(tài)網頁每個網頁都有一個固定的URL,且網頁URL以.htm、.html、.shtml等常見形式為后綴,而不含有“?”;
  • 網頁內容一經發(fā)布到網站服務器上,無論是否有用戶訪問,每個靜態(tài)網頁的內容都是保存在網站服務器上的,也就是說,靜態(tài)網頁是實實在在保存在服務器上的文件,每個網頁都是一個獨立的文件;
  • 靜態(tài)網頁的內容相對穩(wěn)定,因此容易被搜索引擎檢索;
  • 靜態(tài)網頁沒有數(shù)據庫的支持,在網站制作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態(tài)網頁制作方式比較困難;
  • 靜態(tài)網頁的交互性交叉,在功能方面有較大的限制
  • 11

    11客戶端動態(tài)網頁JavaScript的作用:交互式操作;表單驗證;網頁特效JavaScript缺點:每種瀏覽器支持JavaScript的程度是不一樣的,設計網頁時需要考慮客戶端瀏覽器的情況。代碼暴露給客戶端用戶,存在安全隱患。12

    12服務器端動態(tài)網頁服務器端動態(tài)網頁特點:動態(tài)網頁以數(shù)據庫技術為基礎,可以大大降低網站維護的工作量;采用動態(tài)網頁技術的網站可以實現(xiàn)更多的功能,如用戶注冊、用戶登錄、在線調查、用戶管理、訂單管理等等;動態(tài)網頁實際上并不是獨立存在于服務器上的網頁文件,只有當用戶請求時服務器才返回一個完整的網頁;13

    13我們應當采用靜態(tài)還是動態(tài)?網站采用動態(tài)網頁還是靜態(tài)網頁主要取決于網站的功能需求和網站內容的多少,如果網站功能比較簡單,內容更新量不是很大,采用純靜態(tài)網頁的方式會更簡單,反之一般要采用動態(tài)網頁技術來實現(xiàn)。靜態(tài)網頁是網站建設的基礎,靜態(tài)網頁和動態(tài)網頁之間也并不矛盾,為了網站適應搜索引擎檢索的需要,即使采用動態(tài)網站技術,也可以將網頁內容轉化為靜態(tài)網頁發(fā)布。動態(tài)網站也可以采用靜動結合的原則,適合采用動態(tài)網頁的地方用動態(tài)網頁,如果必要使用靜態(tài)網頁,則可以考慮用靜態(tài)網頁的方法來實現(xiàn),在同一個網站上,動態(tài)網頁內容和靜態(tài)網頁內容同時存在也是很常見的事情。14

    141.1基本概念——web服務器Web服務器是一個軟件,用于管理Web頁面,并使這些頁面通過本地網絡或Internet供客戶瀏覽器使用。在Internet中,Web服務器和瀏覽器通常位于兩臺不同的機器上,也許它們之間相隔數(shù)英里。然而,在本地情況下,也可以在一臺機器上運行Web服務器軟件,再在這臺機器上通過瀏覽器瀏覽它的Web頁面。15

    15常見的web服務器在UNIX和LINUX平臺下使用最廣泛的免費HTTP服務器是APACHE服務器Windows平臺下使用IIS的WEB服務器。16

    16HTTP的工作原理客戶端 (瀏覽器)客戶端 (瀏覽器)請給我發(fā)送“超文本簡介”超文本簡介服務器頁請求服務器17

    171.2安裝ASP.NET安裝IIS安裝VS2005(netframework2.0)安裝和配置IIS18

    18安裝IIS“開始”——“控制面板”——“添加刪除程序”,選擇“添加刪除Windows組件”,將“Internet信息服務(IIS)”前面選勾,點擊下一步,將Windows安裝光盤或下載的IIS安裝程序選中后安裝即可。19

    19配置IIS選擇“開始”——“控制面板”——“管理工具”——“Internet信息服務(IIS)”即進入IIS的管理窗口。20

    20具體做法比如本機的IP地址為192.168.0.1,自己的網頁放在e:\aspnet目錄下,網頁的首頁文件名為default.aspx,現(xiàn)在想根據這些建立好自己的Web服務器。對于此Web站點,我們可以用現(xiàn)有的“默認Web站點”來做相應的修改后,就可以輕松實現(xiàn)。請先在“默認Web站點”上單擊右鍵,選“屬性”,以進入名為“默認Web站點屬性”設置界面。修改綁定的IP地址:轉到“網站”窗口,再在“IP地址”后的下拉菜單中選擇所需用到的本機IP地址“192.168.0.1”。修改主目錄:轉到“主目錄”窗口,再在“本地路徑”輸入(或用“瀏覽”按鈕選擇)好自己網頁所在的“e:\aspnet”目錄。添加首頁文件名:轉到“文檔”窗口,再按“添加”按鈕,根據提示在“默認文檔名”后輸入自己網頁的首頁文件名“default.aspx”。擴展:IIS服務器組建一覽21

    211.3建立最簡單的ASP.NET程序打開“VisualStudio2005”——選擇“文件”——“新建網站”22

    22任務建立網頁版“HelloWorld”將網頁重新命名為Myfirst.aspx23

    23ASP.NET文件類型aspx:ASP.Net主體文件,用來存放Web窗體頁面。cs:在使用代碼分離技術時,以C#作為程序設計語言,C#模塊文件。config:配置文件sln:VS2005解決方案文件,一個解決方案可以包含若干個不同類型的項目。(位于我的文檔\visualstudio2005\Projects下)24

    24代碼分離技術在新建Web窗體時,選擇“代碼放在單獨的文件中”即可好處:HTML與程序代碼分開,使程序的邏輯結構更清晰易于重用易于維護可獨立于源代碼進行部署25

    251.4建立最簡單的可交互的ASP.NET程序分別使用代碼分離技術和不使用代碼分離技術建立一個簡單的可交互的Web頁面。功能是,單擊命令按鈕改變標簽的文本內容,字體大小和字體名稱。掌握利用VS2005開發(fā)環(huán)境建立最簡單的可交互的ASP.NETweb頁面程序。理解采用代碼分離技術的好處26

    2627

    27HTML服務器控件和Web服務器控件(1)ASP.NET中有兩類控件:HTML服務器控件和Web服務器控件,都可通過工具箱插入。一個位于工具箱的“HTML”選項卡中,一個位于工具箱的“標準”選項卡中。帶三角符的是Web服務器控件28

    28HTML服務器控件和Web服務器控件(2)HTML服務器控件默認是在瀏覽器端執(zhí)行的,在這種情況下,其完全等效于一組HTML標記。Web服務器控件是ASP.NET內置的服務器端控件,是其強大功能的體現(xiàn),也是我們學習的重點。29

    29第二章Web服務器控件2.1任務1:設置文本字體2.2任務2:圖片瀏覽器2.3任務3:選擇出行時間和目標城市2.4任務4:設計用戶注冊頁面2.5任務5:廣告條效果2.6任務6:設計頁面Banner30

    302.1任務1:設置文本字體掌握Web服務器控件命令按鈕(Button)文本框(TextBox)單選按鈕(RadioButton)復選框列表(CheckBoxList)31

    31ButtonButton控件用于在頁面上顯示一個標準的按鈕。幾個重要的屬性如下:IDFontTextAccessKeyToolTipButton控件的常用事件如下:Click32

    32RadioButtonRadioButton控件用于從一個或多個選項中選擇一項。幾個重要屬性如下:AutoPostBackCheckedGroupName(可將多個單選按鈕形成一組)TextTextAlign當RadioButton控件的Checked屬性發(fā)生變化時將會引發(fā)RadioButton的CheckedChanged事件,但是此事件并不是立即引發(fā)頁面的回發(fā),除非將RadioButton控件的AutoPostBack屬性被設置為True時,Checked屬性發(fā)生變化時會立即回發(fā)頁面到服務器。33

    33RadioButtonListRadioButtonList控件用于提供一組RadioButton控件,其中幾個主要屬性如下:AutoPostBackItemsSelectedIndexSelectedItemSelectedValueRepeatDirection當RadioButtonList控件中的選中項發(fā)生變化時,會引發(fā)SelectedIndexChanged事件,但是此事件不會立即回發(fā)頁面到服務器,除非選擇了RadioButtonList控件的AutoPostBack屬性為True。34

    34CheckBoxCheckBox控件給用戶提供了選擇一項或者多項的功能,幾個重要屬性如下:AutoPostBackCheckedTextTextAlign當CheckBox控件的Checked屬性發(fā)生變化時將會引發(fā)CheckBox的CheckedChanged事件,但是此事件并不是立即引發(fā)頁面的回發(fā),除非將CheckBox控件的AutoPostBack屬性被設置為True時,Checked屬性發(fā)生變化時會立即回發(fā)頁面到服務器。35

    35CheckBoxListCheckBoxList控件用于提供一組CheckBox控件。屬性參考RadioButtonList控件。當CheckBoxList控件中的選中項發(fā)生變化時,會引發(fā)SelectedIndexChanged事件,但是此事件不會立即回發(fā)頁面到服務器,除非選擇了CheckBoxList控件的AutoPostBack屬性為True。36

    36添加CheckBoxList列表項37

    37LinkButtonLinkButton控件就是一個特殊Button控件,除了表現(xiàn)的樣式不同外,其功能跟Button控件的功能基本一致。LinkButton控件的屬性跟Button控件的屬性也基本一致。LinkButton控件的事件也同Button控件的事件一致。38

    38ImageButtonImageButton控件一個特殊的Button控件,其功能跟Button控件的功能一致。幾個ImageButton控件特殊的屬性如下:AlternateText:圖片無法顯示時的替換文本。ImageUrl:要顯示的圖片的URL。事件:Click39

    39HyperLinkHyperLink控件用于創(chuàng)建到其他頁面的鏈接,可以動態(tài)的更改HyperLink的鏈接文本或目標頁,其中幾個重要屬性如下:ImageUrl:要顯示的圖片NavigateUrl:定位到的URLTarget:超鏈接的目標框架Text用戶單擊HyperLink控件時并不會在服務器代碼中引發(fā)事件,而只是執(zhí)行導航任務。40

    40任務2:圖片瀏覽器Image控件DropDownList控件掌握頁面屬性的設置,掌握基本的使用樣式表的技能。了解@page頁面指示符41

    41Image控件Image控件用于在Web頁面上顯示圖像,但是不能捕獲鼠標的服務器端單擊事件,幾個重要屬性如下:1.AlternateText2.ImageAlign3.ImageUrlImage控件可以以一種編程的方式來為Image控件指定圖像文件。42

    42DorpDownListDorpDownList控件類似于Window中的下拉列表框,幾個重要屬性如下:AutoPostBackItemsSelectedIndexSelectedItemSelectedValue掌握利用ListItem集合編輯器和利用代碼兩種方式添加列表項的方法。當DropDownList控件中的選中項發(fā)生變化時,會引發(fā)SelectedIndexChanged事件,但是此事件不會立即回發(fā)頁面到服務器,除非選擇了DropDownList控件的AutoPostBack屬性為True。43

    43頁面屬性的設置在屬性工具欄中選擇“DOCUMENT”后,設置屬性:BgColorBackGroundLinkTextaLinkvLinkStyleStyleSheetTitle通過單擊“Style”屬性對話框彈出“樣式生成器”來實現(xiàn)通過使用樣式表44

    44如何使用樣式表(1)——Html標記編輯樣式表按右鍵添加項目——“樣式表”編輯樣式表,對某一Html標記設置屬性:body{font-size:30px;color:Lime}td{background-color:Silver}應用樣式表在想使用該樣式表的文件中將DOCUMENT的StyleSheet屬性選擇已編輯好的樣式表45

    45如何使用樣式表(2)——服務器端對象編輯樣式表編輯樣式表,:.drpcss{font-size:20px}應用樣式表在想使用該樣式的服務器端控件中將CssClass屬性設置為相應的樣式名稱(如本例中的drpcss)46

    46使用樣式表的好處使網站風格統(tǒng)一便于批量修改樣式47

    47@page頁面指示符@page指令通過設置其中的屬性,使ASP.NET頁分析器和編譯器使用此頁特定設置屬性。每個頁面只能有一個@Page指令。指令的語法如下:<%@Pageattribute="value"[attribute="value"...]%>48

    48任務3:選擇出行時間和目標城市任務要求:能選定城市,被選城市能從左邊的列表框(ListBox)中刪去,并加入到右邊的列表框實現(xiàn)一次可以選擇多個城市,并加入到右邊的列表框中通過日歷控件(Calendar)來選定出行時間。49

    49列表框(ListBox)ListBox控件提供一個項目選擇的功能,ListBox控件可以一次顯示多個項目。用戶可以選擇一項或者多項。50

    50列表框常見的屬性和方法類別名稱描述屬性Items.Counts返回列表框中包含的項的數(shù)量SelectionMode是否允許同時選中多個選項方法Items.Add()向列表框中添加一個新項Items.Remove()移除列表框中的列表項Items.Clear()清除列表框中的所有項51

    51日歷控件(Calendar)Calendar控件用于在Web頁面上顯示日歷,以便用戶選擇具體的日期。52

    52Calendar控件的主要屬性名稱描述SelectedDate選定的日期ShowDayHeader是否顯示周標題DayNameFormat周標題的格式FirstDayofWeek首先顯示一周中的哪一日(默認是周日)NextMonthText選擇下月的標記,默認為>,顯示為“>”PrevMonthText選擇前月的標記,默認為<,顯示為“<”ShowNextProMonth是否顯示下月和前月標識ShowGridLine是否顯示網格線53

    53如何快速設計Calendar控件的樣式利用Calendar控件的“智能標記”中的“自動套用格式”可以利用系統(tǒng)預定義好的幾種日歷樣式。54

    54Calendar控件的重要事件SelectionChanged在用戶更改選擇時激發(fā)該事件。55

    55關鍵代碼(1)當列表框控件的SelectionMode設置為Single時,將一個列表框中的選定的單個項目添加到另一個列表框56

    56關鍵代碼(2)當列表框控件的SelectionMode設置為Multiple時,將一個列表框中的選定的所有項目添加到另一個列表框57

    57知識點日期的格式化顯示58

    58觀察運行效果protectedvoidPage_Load(objectsender,EventArgse){Response.Write(DateTime.Now.ToString("yy-M-d"));Response.Write("
    ");//換行Response.Write(DateTime.Now.ToString("yy年M月d日"));Response.Write("
    ");Response.Write(DateTime.Now.ToString("yyyy-MM-dd"));Response.Write("
    ");Response.Write(DateTime.Now.ToString("yyyy年MM月dd日"));Response.Write("
    ");Response.Write(DateTime.Now.ToString("yyyy年MM月dd日h:m:s"));Response.Write("
    ");Response.Write(DateTime.Now.ToString("yyyy年MM月dd日hh:mm:ss"));}59

    59任務四:設計用戶注冊界面知識點:掌握各種驗證控件的使用RequiredFieldValidatorCompareValidatorRangeValidatorRegularExpressionValidatorValidationSummaryCustomValidator60

    60RequiredFieldValidator必填驗證控件:用來確保用戶輸入,使的輸入控件成為強制字段。重要屬性:ControlToValidate:指定關聯(lián)控件ErrorMessage:當關聯(lián)控件為空時提示信息的內容Display:驗證控件的顯示方式,三種顯示方式(書上有誤)Static:即使沒有可見錯誤信息文本,每個驗證控件也將占用空間,允許你為頁定義固定的布局Dynamic:除非顯示錯誤信息,否則驗證控件將不會占用空間,這允許控件共用同一個位置(例如表的單元格)。但在顯示錯誤信息時,頁的布局將會更改,有時將導致控件更改位置。None:不顯示61

    61CompareValidator比較驗證控件:該控件將一個窗體字段中輸入的值與一個常量或另一個控件中輸入的值進行比較,并驗證值的類型。重要屬性:ControlToValidate:指定關聯(lián)控件ControlToCompare:指定和關聯(lián)控件比較的控件Operator:指定比較的方式,共有7中方式,如“大于”、“等于”等。Type:用于比較的值的數(shù)據類型(string,integer,double,date,currency)62

    62RangeValidator范圍驗證控件:用于驗證用戶輸入的值是否在設定的范圍之內??梢詸z查數(shù)字,字符,時間類型的數(shù)據。屬性:MaximumValue:指定范圍的最大值MinimumValue:指定范圍的最小值Type:用于比較的值的數(shù)據類型(string,integer,double,date,currency)本任務須將RangeValidator對象的Type屬性設置為Integer63

    63RegularExpressionValidator正則表達式驗證控件:用來驗證用戶輸入的值是否符合一定的格式,而這個格式是由設定的正則表達式(RegularExpression)來確定的。常用來驗證電子郵件地址,電話號碼,身份證號等等。書寫規(guī)則:普通字符轉義字符字符集合數(shù)量限定符位置限定符重要屬性:ValidationExpression:用于確定有效性的正則表達式。64

    64ValidationSummary驗證摘要控件:用來顯示Web頁面上所有驗證控件的錯誤信息,其本身并不具有驗證功能,只是用來匯總、顯示所有的錯誤信息。重要屬性:DisplayMode:錯誤摘要輸出時的顯示方式,有列表,項目符號和單一段落ShowMessageBox:是否使用彈出式顯示方式,默認為false。HeaderText:錯誤摘要輸出時的標題ShowSummary:是否顯示錯誤摘要,默認值true在使用ValidationSummary控件時,我們可以將各個單個的驗證控件的Display設置為None,這樣就可以只看到ValidationSummary中顯示的錯誤信息。65

    65CustomValidator自定義驗證控件:用來驗證數(shù)據是否符合用戶自己定義的驗證規(guī)則??梢圆捎每蛻舳蓑炞C和服務器端驗證(我們這里只采用服務器端驗證)重要屬性:IsValid:是否通過驗證,通過值為true,否則值為falseControlToValidate:指定關聯(lián)控件事件:ServerValidate:自定義控件驗證事件,當驗證在服務器發(fā)生后執(zhí)行相應的事件處理代碼66

    66protectedvoidCustomValidator1_ServerValidate(objectsource,ServerValidateEventArgsargs){//利用args參數(shù)獲取在驗證關聯(lián)控件中輸入的身份證號stringstrid=Convert.ToString(args.Value);//獲取身份證倒數(shù)第二位stringd=strid.Substring(16,1);intnum=Convert.ToInt16(d);if(drpsex.Text=="男"){args.IsValid=(num%2)==0?false:true;}else{args.IsValid=(num%2)==0?true:false;}}67

    67任務五:設計頁面Banner知識點:Web用戶控件學習建立Web用戶控件的方法學習為Web用戶控件添加新的屬性學習為Web用戶控件添加新的方法Panel控件學習使用容器控件(Panel)了解如何在容器控件(Panel)動態(tài)添加控件68

    68使用Web用戶控件的好處便于其他Web頁引用便于統(tǒng)一修改69

    69定義Web用戶控件的步驟創(chuàng)建Web用戶控件文件,文件創(chuàng)建成功會自動生成窗體向窗體中添加Web服務器控件,并根據需要設置控件屬性為Web用戶控件定義屬性為Web用戶控件定義方法為Web用戶控件定義新的事件70

    70第一步:創(chuàng)建Web用戶控件文件,文件創(chuàng)建成功會自動生成窗體71

    71第二步:向窗體中添加Web服務器控件,并根據需要設置控件屬性添加div和Table用于布局添加Image、Label和DropDownList對象,并設置相應的屬性72

    72第三步:為Web用戶控件定義屬性publicstringEngLanguage{get{returnDropDownList1.SelectedValue;}}publicstringChnLanguage{get{returnDropDownList1.SelectedItem.Text;}}publicstringTitle{get{returnLabel1.Text;}}73

    73第四步:為Web用戶控件定義方法publicvoidAddLanguage(stringEngLanguage,stringChnLanguage){ListItemitem=newListItem();item.Text=EngLanguage;item.Value=ChnLanguage;DropDownList1.Items.Add(item);}publicvoidSetTitle(stringTitle){Label1.Text=Title;}74

    74Web用戶控件與Web頁面的關系用戶控件與ASP.NET網頁有以下區(qū)別:用戶控件的文件擴展名為.ascx。用戶控件中沒有@Page指令,而是包含@Control指令,該指令對配置及其他屬性進行定義。用戶控件不能作為獨立文件運行。而必須像處理任何控件一樣,將它們添加到ASP.NET頁中。用戶控件中沒有html、body或form元素。75

    75Panel控件:Panel服務器控件在Web窗體頁內提供了一種容器控件,您可以將它用作靜態(tài)文本和其他控件的父級其他用途:對控件和標記進行分組動態(tài)生成的控件的容器頁上的自定義區(qū)域使用Panel控件在頁上創(chuàng)建具有自定義外觀和行為的區(qū)域,如下所示:添加滾動條如果設置了Height和Width屬性將Panel控件約束到特定大小,則可通過設置ScrollBars屬性添加滾動條。創(chuàng)建一個帶標題的分組框可設置GroupingText屬性來顯示標題。呈現(xiàn)頁時,Panel控件的周圍將顯示一個包含標題的框,其標題是您指定的文本。76

    76第三章ASP.NET內置對象任務一:獲取來訪者信息(Request對象)任務二:使用Cookie登陸網站(Cookie對象)任務三:為頁面設置生存空間(Session對象)任務四:簡單聊天室(Application對象)任務五:動態(tài)在線人數(shù)統(tǒng)計77

    77ASP.NET內置對象對象名說明Request從瀏覽器中獲取信息Cookie用來保留客戶端信息,保留在客戶端Response向瀏覽器輸出信息Session用來保留客戶端信息,保留在服務器端Application為所有用戶提供共享信息的手段Server獲取服務器端信息Trace提供在HTTP頁輸出自定義跟蹤和信息78

    78使用Cookie登陸網站教學目的:學習Cookie對象的主要功能及基本使用方法(寫入和讀取操作)學習為Cookie設置生存期學習使用Response對象79

    79寫入Cookieif(CheckBox1.Checked){Response.Cookies["ID"].Value=txtUserID.Text;Response.Cookies["PWD"].Value=txtpwd.Text;Response.Cookies["ID"].Expires=DateTime.Now.AddYears(1);Response.Cookies["PWD"].Expires=DateTime.Now.AddYears(1);}Response.Redirect("login.htm");80

    80讀取CookieprotectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){if(Request.Cookies["ID"]!=null&&Request.Cookies["PWD"]!=null){txtUserID.Text=Request.Cookies["ID"].Value;txtpwd.Attributes.Add("Value",Request.Cookies["PWD"].Value);}}}81

    81Cookie對象——概述概述Cookie提供了一種在Web應用程序中存儲用戶特定信息(如歷史記錄或用戶首選項)的方法。Cookie是一小段文本,伴隨著請求和響應在Web服務器和客戶端之間來回傳輸。應用:保留用戶個人信息,如姓名,密碼等,幫助用戶快速登陸網頁保留用戶個人愛好,設計者可以根據Cookie中記錄的用戶愛好來設置網站的風格…注意:Cookie記錄在客戶端硬盤中,所以會帶來一定的安全隱患82

    82Cookie對象——寫入操作寫入——利用Response對象寫入Response.Cookies["ID"].Value=txtUserID.Text;//將txtUserID中的Text屬性值寫入鍵名為ID的Cookie中。Response.Cookies["ID"].Expires=DateTime.Now.AddYears(1);//設置鍵名為ID的Cookie生存時間。注意:如果不設置Cookie的Expires屬性,則當頁面關閉時,Cookie生命即結束。83

    83Cookie對象——讀取操作讀?。豪肦equest對象txtUserID.Text=Request.Cookies["ID"].Value;將鍵名為ID的Cookie的值讀出,賦值給txtUserID的Text屬性。84

    84Response對象——概述(1)主要功能:寫入Cookie值頁面跳轉頁面間參數(shù)傳遞輸出信息(文字信息,二進制數(shù)據——圖片等)85

    85Response對象——概述(2)類別名稱描述屬性Cookie將信息寫入到CookieRedirect將頁面重新定位到指定的頁面上方法Close()關閉到客戶端的套接字連接Write()將字符串輸出到頁面上WirteFile()文本文件中的內容輸出到網頁上86

    86Response對象——頁面跳轉重定向到服務器內的頁面Response.Redirect("login.htm");重定向到服務器以外的站點Response.Redirect("http://www.sina.com");Response.Close();//斷開頁面和服務器端的連接87

    87Response對象——頁面間參數(shù)傳遞獲取用戶注冊頁用戶注冊信息。88

    882022/10/2089

    89Response對象——輸出信息(文字信息)Write()方法——輸出字符串Response.Write("helloworld");Response.Write("

    HelloWorld

    ");Response.Write(Server.HtmlEncode("

    HelloWorld

    "));WriteFile()方法——輸出文本文件內容到頁面Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");Response.WriteFile("textfile.txt");90

    90Session對象Session是ASP.NET提供的一個內置對象,用來存儲一個特定用戶的會話信息。當一個用戶對一個頁面發(fā)出請求時,即開始了一次會話,生成一個用唯一SessionID標識的Session,來唯一的標識該用戶,該Session將一直存在到瀏覽器被關閉或Session超時。在服務器每個在線用戶都有一個專有的Session,該Session僅能被擁有者使用。91

    91Application對象定義Application對象變量并賦值的語法為Application["變量名稱"]=變量。取得Application對象變量值的語法為變量=Application["變量名稱"]因為Application對象變量被所有用戶共享值,所以可能造成兩個以上的使用者同時存取同一個變量的情形,可能會導致存入的數(shù)據不正確。要避免這種情況,我們只要利用Application對象的Lock方法將變量暫時鎖定禁止他人寫入,等操作完畢后再利用Application對象的UnLock方法解除鎖定。使用方法如下:Application.Lock();Application["變量"]="內容";Application.UnLock();92

    92第四章ASP.NET類庫任務一:小學生算術測試任務二:上傳文件到指定目錄93

    93任務一:小學生算術測試94

    94界面設計txtNum1txtNum2txtUserAnswerlstTmLbltm標簽:用于存放題目,將Visable屬性設置為falseLblzqda:用來存放正確答案,將visable屬性設置為false95

    95代碼(1)定義方法chuti,實現(xiàn)出題方便調用privatevoidchuti(){intzqda=0;//存儲正確答案Randomrnd=newRandom();intn=0,m=0,op=0;//Random類的NextDouble方法可以返回[0.0~1.0)之間的雙精度小數(shù)n=Convert.ToInt16(20*rnd.NextDouble());m=Convert.ToInt16(20*rnd.NextDouble());txtNum1.Text=n.ToString();txtNum2.Text=m.ToString();//產生0~3之間的隨機整數(shù),0代表+;1代表-;2代表×;3代表÷op=Convert.ToInt16(3*rnd.NextDouble());switch(op){case0:lblOp.Text="+";zqda=n+m;break;case1:lblOp.Text="-";zqda=n-m;break;case2:lblOp.Text="×";zqda=n*m;break;case3:lblOp.Text="÷";zqda=n/m;break;}//在標簽中存儲題目和正確答案lbltm.Text=txtNum1.Text+lblOp.Text+txtNum2.Text;lblzqda.Text=zqda.ToString();}96

    96代碼(2):頁面首次加載時,出題protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack)chuti();}97

    97代碼(3):單擊提交按鈕后,判斷對錯并出下一題protectedvoidbtnSubmit_Click(objectsender,EventArgse){intyhda=Convert.ToInt16(txtUserAnswer.Text);//判斷對錯if(yhda==Convert.ToInt16(lblzqda.Text)){lstTm.Items.Add(lbltm.Text+"="+txtUserAnswer.Text+"√");}else{lstTm.Items.Add(lbltm.Text+"="+txtUserAnswer.Text+"×");}txtUserAnswer.Text="";txtUserAnswer.Focus();chuti();}98

    98任務二:上傳文件到指定目錄掌握FileUpload控件的用法了解System.IO命名空間學習File類的使用方法99

    99protectedvoidbtnUpLoad_Click(objectsender,EventArgse){boolfileok=false;//fileok存放文件是否合法(是否是圖片文件)stringimagepath=Server.MapPath("uplaodimage");if(fileUpLoad1.HasFile)//用戶已經選擇了要上傳的文件{stringf=Path.GetExtension(fileUpLoad1.FileName).ToLower();string[]a={".gif",".jpg",".png",".bmp",".jepg"};for(inti=0;i

    100FileUpload(1)概述:FileUpload控件顯示一個文本框控件和一個瀏覽按鈕,用戶通過它們可以在客戶端上選擇一個文件并將該文件上載到Web服務器。用戶選擇要上載的文件后,F(xiàn)ileUpload控件不會自動將該文件發(fā)送到服務器。必須顯式提供一個允許用戶提交窗體的控件或機制。例如,提供一個用于提交文件的按鈕。101

    101FileUpload(2)常用屬性和方法FileName:獲取客戶端上傳文件的文件名。HasFile:獲取一個值,該值指示FileUpload控件是否包含文件。PostedFile.ContentLength:該屬性來獲取文件的長度PostedFile.SaveAs:該方法用戶與保存上載文件的內容。102

    102System.IOSystem.IO命名空間包含大量與文件、目錄操作相關的類、枚舉、委托和結構,提供了非常強大的文件操作功能。DriveInfo:提供對有關驅動器信息的訪問Directory:提供用于創(chuàng)建、移動和枚舉目錄和子目錄的靜態(tài)方法File:提供創(chuàng)建、復制、刪除、移動和打開文件的靜態(tài)方法。Path:對包含文件或目錄路徑信息的String實例執(zhí)行操作。103

    103DriveInfo提供對有關驅動器信息的訪問常用屬性:Name:獲取驅動器的名稱。RootDirectory:獲取驅動器的根目錄常用方法:GetDrives:檢索計算機上的所有邏輯驅動器的驅動器名稱。104

    104File類信息存放在文件中,文件組織成目錄。程序可以用File與Directory類操縱磁盤文件和目錄。File類可以確定文件信息,可以對文件進行讀取或寫入。提供用于創(chuàng)建、復制、刪除、移動和打開文件的靜態(tài)方法。105

    105File類常用方法如下表靜態(tài)方法描述舉例File.Create在指定路徑中創(chuàng)建文件File.Create("d:\\a.txt");File.Copy將現(xiàn)有文件復制到新文件File.Copy("d:\\a.txt","e:\\b.txt");File.Delete刪除指定的文件File.Delete("d:\\a.txt");File.Move將指定文件移到新位置,并提供指定新文件名的選項File.Move("d:\\a.txt","e:\\b.txt");File.Exists確定指定的文件是否存在。File.Exists("d:\\a.txt");106

    106Directory類Directory類提供目錄操作功能,如復制、移動、重命名、創(chuàng)建和刪除目錄。也可將Directory類用于獲取和設置與目錄的創(chuàng)建、訪問及寫入操作相關的DateTime信息。107

    107Directory類主要的提供的靜態(tài)方法如下:靜態(tài)方法描述舉例Directory.CreateDirectory創(chuàng)建指定目錄。Directory.CreateDirectory("d:\\temp");Directory.Delete刪除指定的目錄。Directory.Delete("d:\\temp");Directory.Exists確定給定路徑是否引用磁盤上的現(xiàn)有目錄。Directory.Exists("d:\\temp");Directory.GetFiles返回指定目錄中的文件的名稱。返回類型string[]Directory.GetFiles("c:\\windows");Directory.Move將文件或目錄及其內容移到新位置。Directory.Move("d:\\temp","e:\\temp");108

    108Path類提供對包含文件或目錄路徑信息的String實例執(zhí)行操作的靜態(tài)方法。GetExtension返回指定的路徑字符串的擴展名。GetFileName返回指定路徑字符串的文件名和擴展名。GetFileNameWithoutExtension返回不具有擴展名的指定路徑字符串的文件名。109

    109錯誤和異常錯誤的出現(xiàn)并不總是編寫應用程序的人的原因,有時應用程序會因為終端用戶的操作或運行代碼的環(huán)境而發(fā)生錯誤。無論如何,我們都應預測應用程序和代碼中出現(xiàn)的錯誤。110

    110捕獲異常為了在C#代碼中處理可能的錯誤,一般要把程序的相關部分分成3個不同類型的代碼塊try塊包含的代碼組成了程序正常操作的部分,但這部分程序可能遭到某種嚴重的錯誤。catch塊包含的代碼處理各種錯誤,這些錯誤是try塊中的代碼執(zhí)行時遇到的。這個塊還可以用于記錄錯誤。finally塊包含的代碼用于清理資源或執(zhí)行要在try塊或catch塊末尾執(zhí)行的其他操作。無論是否產生異常,都會執(zhí)行finally塊。例如可以在finally塊中關閉在try塊中打開的連接。Finally塊是可選的。如果不需要清理代碼(例如刪除對象或關閉已打開的對象),就不需要包含此塊。111

    111基本流程112

    112第五章使用ADO.NET訪問數(shù)據庫113

    1135.1ADO.NET概述(1)ADO.NET是.NET框架下操作數(shù)據庫的對象的組件,ADO.NET是用C#連接數(shù)據庫的重要技術,借助ADO.NET程序能夠查看、插入、更新和刪除數(shù)據庫的記錄。ADO.NET對象模型中有5個主要的數(shù)據庫訪問和操作對象,分別是Connection、Command、DataReader、DataAdapter和DataSet對象。114

    1145.1ADO.NET概述(2)Connection對象主要負責連接數(shù)據庫Command對象主要負責生成并執(zhí)行SQL語句DataReader對象主要負責讀取數(shù)據庫中的數(shù)據DataAdapter對象主要負責在Command對象執(zhí)行完SQL語句后生成并填充DataSet和DataTableDataSet對象主要負責存取和更新數(shù)據115

    115ADO.NET對象模型(1)116

    116ADO.NET對象模型(2)——數(shù)據庫及相應的數(shù)據提供程序數(shù)據庫類型數(shù)據提供程序SQLServerSqlConnection、SqlCommand、SqlDataReader、SqlDataAdapterOracleOracleConnection、OracleCommand、OracleDataReader、OracleDataAdapterOLEDBOleDbConnection、OleDbCommand、OleDbDataReader、OleDbDataAdapterODBCOdbcConnection、OdbcCommand、OdbcDataReader、ObdcDataAdapter117

    117ADO.NET對象模型(3)在程序中要使用ADO.NET,需要導入相應的命名空間,如訪問SQLServer數(shù)據庫,需要導入System.Data和System.Data.SqlClient。由于ASP.NET與SQLServer天然的聯(lián)系,本章中僅以訪問SQLServer數(shù)據庫為例。訪問其他類型的數(shù)據庫的方法與SQLServer是完全相同的,僅需導入相應的命名空間(System.Data.SqlClient),使用相應的數(shù)據提供程序即可。118

    118ADO.NET對象模型(4)——DataSetDataSet是ADO.NET的斷開式結構的核心組件。DataSet獨立于任何數(shù)據源,因此,它可以用于多種不同的數(shù)據源,如數(shù)據庫、XML數(shù)據,Excel、文本文件等數(shù)據。在訪問數(shù)據時,ADO.NET會利用XML制作數(shù)據的一份副本,ADO.NET也只有在這段時間需要在線。DataSet是一個或多個DataTable對象的集合,這些對象由數(shù)據行和數(shù)據列以及主鍵、外鍵、約束和有關DataTable對象中數(shù)據的關系信息組成119

    119在ASP.NET中操作數(shù)據庫中的數(shù)據(1)學習目標學習ASP.NET應用程序和SQLServer數(shù)據庫建立連接的方法學習在ASP.NET應用程序中執(zhí)行SQL語句的方法學習SqlConnection對象的主要方法和屬性學習SqlCommand對象的主要方法和屬性學習SqlDataReader對象的主要方法和屬性學習GridView控件的簡單使用120

    120Chp7_1_1.aspx設計界面在該頁面下單擊“提交”按鈕,在“student”表中添加一條新的學生記錄單擊“顯示1”按鈕,頁面跳轉至“chp7_1_1a.aspx”單擊“顯示2”按鈕,頁面跳轉至“chp7_1_1b.aspx”注意:應將“顯示1”和“顯示2”按鈕的CausesValidtion設置為“false”121

    121“提交”按鈕代碼(2-1):stringstrconn=@“datasource=.\;initialcatalog=studentlesson;integratedsecurity=true”;//連接字符串protectedvoidbtnSubmit_Click(objectsender,EventArgse){SqlConnectionconn=null;try{conn=newSqlConnection(strconn);conn.Open();stringstrsql="insertintostudent(studentID,studentname,stusex,class,birthday,registyear)";strsql+="values('"+txtstuxh.Text+"','"+txtstuname.Text+"','"+drpsex.Text+"','"+txtClass.Text+"','"+txtBirthday.Text+"','"+txtYear.Text+"')";SqlCommandcomm=newSqlCommand(strsql,conn);comm.ExecuteNonQuery();Response.Write("");}122

    122“提交”按鈕代碼(2-2):catch(SqlExceptionex){switch(ex.Number){case2627://違反數(shù)據庫Unique約束txtstuxh.Text="";Response.Write("");break;default://其他任何產生的數(shù)據庫錯誤Response.Write("數(shù)據庫訪問錯誤
    錯誤描述:"+ex.Message+"錯誤代碼:"+Convert.ToString(ex.Number));break;}}finally{conn.Close();}}123

    123“顯示1”和“顯示2”按鈕代碼:protectedvoidButton1_Click(objectsender,EventArgse){Server.Transfer("chp7_1_1a.aspx");}protectedvoidButton2_Click(objectsender,EventArgse){Server.Transfer("chp7_1_1b.aspx");}124

    124頁面主要代碼:SqlConnectionconn=null;try{conn=newSqlConnection(strconn);conn.Open();stringstrsql="select*fromstudent";SqlCommandcomm=newSqlCommand(strsql,conn);SqlDataReaderdr=comm.ExecuteReader();stringa="";for(inti=0;i<10;i++){a+=" ";}if(dr.HasRows){while(dr.Read()){Response.Write(dr["studentID"].ToString()+a);Response.Write(dr["studentname"].ToString()+a);Response.Write(dr["class"].ToString()+a);Response.Write("
    ");}dr.Close();}125

    125頁面設計DataGridView控件126

    126主要代碼:SqlConnectionconn=null;try{conn=newSqlConnection(strconn);conn.Open();stringstrsql="selectstudentid學號,studentname姓名,class班級fromstudent";SqlCommandcomm=newSqlCommand(strsql,conn);SqlDataReaderdr=comm.ExecuteReader();GridView1.DataSource=dr;GridView1.DataBind();dr.Close();}127

    127SqlConnection對象要創(chuàng)建與數(shù)據庫的連接,需要使用SqlConnection對象,它的一些屬性描述了數(shù)據源和用戶身份驗證的信息,SqlConnection對象還提供了與數(shù)據源連接和斷開的方法128

    128SqlConnection對象在運行時創(chuàng)建SqlConnection對象的方法有兩種(即兩種重載形式):使用沒有參數(shù)的SqlConnection類的構造函數(shù)創(chuàng)建Connection對象,然后再設置ConnectionString屬性。stringstrconn=@"datasource=.\sqlexpress;initialcatalog=studentlesson;integratedsecurity=true";SqlConnectionconn=newSqlConnection();conn.ConnectionString=strconn;使用ConnectionString屬性值作為SqlConnection類的構造函數(shù)的參數(shù)創(chuàng)建Connection對象stringstrconn=@"datasource=.\sqlexpress;initialcatalog=studentlesson;integratedsecurity=true";SqlConnectionconn=newSqlConnection(strconn);129

    129SqlConnection對象四種常見的SqlConnection對象的ConnectionString屬性值server=localhost;uid=sa;pwd=sa;database=northwindserver=localhost;IntegratedSecurity=True;database=northwindDataSource=localhost;uid=sa;pwd=sa;InitialCatalog=northwindDataSource=localhost;InitialCatalog=northwind;IntegratedSecurity=True130

    130SqlConnection對象:如何設置ConnectionString方法一直接書寫如:DataSource=.\;InitialCatalog=PersonSchedule;IntegratedSecurity=True131

    131SqlConnection對象:如何設置ConnectionString方法二“視圖”——“服務器資源管理器”——“數(shù)據連接”——“添加連接”。然后查看“屬性”——“連接字符串”。132

    132DataSource也可寫成Server用來指定需要連接的數(shù)據庫服務器書寫格式連接本地服務器:DataSource=(local)\實例名DataSource=.\實例名連接遠程服務器DataSource=IP133

    133InitialCatalog也可寫成DataBase用來指定連接的數(shù)據庫名。134

    134IntegratedSecurity用來說明登錄到數(shù)據源時是否使用SQLServer的集成安全驗證。如果該值設置為True,則表示登錄到SQLServer時使用Windows驗證模式,此時不需要通過Uid和Pwd這樣的方式登錄如果該值設置為False,則表示登錄到SQLServer時使用Uid和Pwd方式登錄。135

    135SqlConnection對象Connection對象的常用屬性和方法屬性描述ConnectionString獲取或設置用于打開數(shù)據庫的字符串。方法描述State獲取連接的當前狀態(tài)。Open使用ConnectionString所指定的屬性設置打開數(shù)據庫連接。Close關閉與數(shù)據庫的連接。這是關閉任何打開連接的首選方法。136

    136SqlCommand對象當建立與數(shù)據源的連接后,就要使用Command對象來執(zhí)行命令對數(shù)據源執(zhí)行查詢、更新、刪除、添加操作。137

    137SqlCommand對象——常見屬性SqlCommand對象常用的屬性屬性描述Connection獲取或設置SqlCommand對象使用的SqlConnection對象。CommandText獲取或設置要對數(shù)據源執(zhí)行的T-SQL語句或存儲過程。CommandTypeText,此時CommandText屬性應設置為要執(zhí)行的SQL語句(默認為Text)。StoredProcedure,CommandText屬性應設置為存儲過程的名稱。Parameters包含0個或多個參數(shù)。138

    138實例化SqlCommand對象方法一:SqlCommandcomm=newSqlCommand(strsql,conn);方法二:SqlCommandcomm=newSqlCommand(strsql,conn);comm.Connection=conn;comm.CommandText=strsql;139

    139SqlCommand對象——常見方法常見方法:ExecuteNonQuery:對連接執(zhí)行T-SQL語句并返回受影響的行數(shù)。ExecuteReader:將CommandText發(fā)送到Connection并生成一個SqlDataReader。ExecuteScalar:執(zhí)行查詢,并返回查詢所返回的結果集中第一行的第一列。忽略其他列或行。140

    140SqlCommand對象——ExecuteNonQuery方法使用ExecuteNonQuery方法可以處理那些不返回數(shù)據行的操作,如更新、插入、刪除。雖然該方法不返回數(shù)據行,但可以通過Command對象的Parameters集合來傳遞和返回輸入參數(shù)、輸出參數(shù)、返回值。141

    141SqlCommand對象——ExecuteScalar方法Command對象的ExecuteScalar方法提供了返回單個值的功能。它執(zhí)行查詢,并返回查詢所返回的結果集中第一行的第一列。忽略其他列或行142

    142SqlDataReader對象(1)使用DataReader對象可以從數(shù)據庫中檢索只讀、只向前進的數(shù)據流,查詢結果在查詢執(zhí)行時返回,大大加快了訪問和查看數(shù)據的速度,尤其是需要快速訪問數(shù)據庫,該方法一次在內存中存儲一行,從而降低了系統(tǒng)的開銷,但是DataReader不提供對數(shù)據的斷開式訪問。143

    143SqlDataReader對象(2)使用DataReader對象雖然可以極大地提高數(shù)據訪問速度,但是在某一時間,每個關聯(lián)的Connection對象只能打開一個DataReader,在上一個DataReader關閉之前,打開另一個的任何嘗試都將失敗,當使用DataReader對象時,關聯(lián)的Connection對象忙于為它提供服務,直到調用Close方法為止。不使用DataReader對象時要及時關閉,然后再關閉Connection對象。144

    144SqlDataReader對象(3)DataReader類的實例化先創(chuàng)建一個Command對象,然后調用Command對象的ExecuteReader方法如:SqlDataReaderdr=comm.ExecuteReader();HasRows屬性:獲取一個值,該值指示SqlDataReader是否包含一行或多行。Read()方法:使SqlDataReader前進到下一條記錄,如果存在多個行,則為true;否則為false。SqlDataReader默認位置在第一條記錄前面。返回行的每一列值的方法通過向DataReader傳遞列的名稱或序號引用如:textBox1.Text=dr["PriorityTitle"].ToString();145

    145GridView控件(1)作用:在表中顯示數(shù)據源的值,其中每列表示一個字段,每行表示一條記錄。GridView控件允許選擇和編輯這些項以及對它們進行排序。146

    146GridView控件(2)屬性:DataSource:獲取或設置對象,數(shù)據綁定控件從該對象中檢索其數(shù)據項列表方法DataBind:將數(shù)據源綁定到GridView控件147

    147在ASP.NET中操作數(shù)據庫中的數(shù)據(2)程序功能:利用SqlDataAdapter對象和DataSet對象顯示表中記錄。利用SqlDataAdapter對象編輯表中記錄。知識點:掌握通過SqlDataAdapter對象對數(shù)據庫進行操作的方法學習SqlDataAdapter類的主要方法和屬性掌握DataSet類的主要方法和屬性掌握DataTable對象的簡單應用理解數(shù)據綁定的含義,及掌握如何綁定數(shù)據148

    148界面設計類名對象名(Name)TextTextBoxtxtStudentIDButtonbtnRefresh刷新ButtonbtnDelete刪除GridViewgdvStudent——149

    149代碼(1)——類中聲明:privatestringstrconn=@"server=.\sqlexpress;database=studentlesson;integratedsecurity=true";privateSqlDataAdapterda=newSqlDataAdapter();150

    150代碼(2)——“刷新”按鈕單擊事件protectedvoidbtnRefresh_Click(objectsender,EventArgse){SqlConnectionconn=null;try{conn=newSqlConnection(strconn);stringstrsql="selectstudentID學號,studentname姓名,class班級fromstudent";da.SelectCommand=newSqlCommand(strsql,conn);DataSetds=newDataSet();da.Fill(ds,"學生表");gdvStudent.DataSource=ds.Tables["學生表"];gdvStudent.DataBind();}catch。。。}151

    151代碼(3)——“刪除”按鈕單擊事件SqlConnectionconn=null;try{conn=newSqlConnection(strconn);conn.Open();stringstrsql="deletefromstudentwherestudentid=@studentid";da.DeleteCommand=newSqlCommand(strsql,conn);da.DeleteCommand.Parameters.AddWithValue("@studentid",txtStudentID.Text);da.DeleteCommand.ExecuteNonQuery();}catch(SqlExceptionex)。。。152

    152DataSet對象特點斷開式結構,即可以脫離數(shù)據源使用。DataSet是一個對象,是一個數(shù)據容器,從數(shù)據庫中檢索的數(shù)據可以存儲其中,DataSet中的數(shù)據用XML的形式保存。153

    153DataSet對象DataSet對象可以包含一個或多個表對象(DataTable),以及表之間的關系和約束。DataTable代表內存中的一張表。DataSet中的數(shù)據以DataTable形式存儲。DataTable對象用作DataSet對象的數(shù)據容器,但它可以作為一個包含表格式數(shù)據的獨立對象。154

    154練習:程序功能:實現(xiàn)學生選課。知識點將數(shù)據綁定在簡單控件上,如DropDownList、ListBox等。155

    155界面設計類名對象名DropDownListdrpStudentIDDropDownListdrpTeacherIdListBoxlstLessonId156

    156頁面加載事件代碼(1)if(!Page.IsPostBack){。。。conn=newSqlConnection(strconn);SqlDataAdapterda=newSqlDataAdapter();//填充記錄集stringstrsql="selectstudentidfromstudent";da.SelectCommand=newSqlCommand(strsql,conn);DataSetds=newDataSet();da.Fill(ds,"學號");strsql="selectteacheridfromteacher";da.SelectCommand=newSqlCommand(strsql,conn);da.Fill(ds,"教師編號");strsql="selectlessonname,lessonidfromlesson";da.SelectCommand=newSqlCommand(strsql,conn);da.Fill(ds,"課程");157

    157頁面加載事件代碼(2)//綁定數(shù)據drpStudentID.DataSource=ds.Tables["學號"];drpStudentID.DataTextField="studentid";drpStudentID.DataBind();drpTeacherId.DataSource=ds.Tables["教師編號"];drpTeacherId.DataTextField="teacherid";drpTeacherId.DataBind();lstLessonId.DataSource=ds.Tables["課程"];lstLessonId.DataTextField="lessonname";lstLessonId.DataValueField="lessonid";lstLessonId.DataBind();}158

    158“添加”按鈕單擊事件conn=newSqlConnection(strconn);conn.Open();SqlDataAdapterda=newSqlDataAdapter();stringstrsql="insertintoxk(studentid,lessonid,teacherid)values(@studentid,@lessonid,@teacherid)";da.InsertCommand=newSqlCommand(strsql,conn);da.InsertCommand.Parameters.AddWithValue("@studentid",drpStudentID.Text);da.InsertCommand.Parameters.AddWithValue("@teacherid",drpTeacherId.SelectedValue);da.InsertCommand.Parameters.Add("@lessonid",lstLessonId.SelectedValue);da.InsertCommand.ExecuteNonQuery();159

    159數(shù)據綁定數(shù)據綁定是在Web控件和數(shù)據源之間建立聯(lián)系的一種方式,通過數(shù)據綁定可以方便的訪問數(shù)據源中的數(shù)據。數(shù)據綁定的常用屬性名稱描述DataSource指定數(shù)據源,即數(shù)據集名稱DataMember若DataSource中包含多個表,指定表的名稱DataTextField指定要與控件中Text屬性相關聯(lián)的字段的名稱DataValueField指定要與控件中Value屬性相關聯(lián)字段的名稱lstLessonId.DataSource=ds.Tables["課程"];lstLessonId.DataTextField="lessonname";lstLessonId.DataValueField="lessonid";lstLessonId.DataSource=ds;lstLessonId.DataMember="課程"160

    160顯示選課表中的數(shù)據程序功能:在教師姓名下拉列表中選擇教師姓名在課程下拉列表中列出所有課程名在GridView控件中列出被選課程的選課情況知識點:掌握SqlDataSource的使用方法161

    161界面設計類名對象名DataSourceIDDataTextFieldDataValueFieldDropDownListdrpTeacherteacherDSTeachernameteacherIDDropDownListdrpLessonlessonDSLessonnamelessonIDGridViewgdvXKxkDS————SqlDataSourceteacherDS——sqlDataSourcelessonDS——sqlDataSourcexkDS——ButtonbtnAll——162

    162“顯示所有選課記錄”按鈕單擊事件代碼:protectedvoidbtnAll_Click(objectsender,EventArgse){xkDS.SelectCommand="SELECT[課程名],[課程編號],[學號],[學生姓名],[班級],[教師],[職稱]FROM[v_選課]";gdvXk.DataBind();}163

    163SqlDataSource控件(1)SqlDataSource數(shù)據源控件用于表示綁定到數(shù)據綁定控件的SQL關系數(shù)據庫中的數(shù)據。將SqlDataSource控件與數(shù)據綁定控件一起使用,可以從關系數(shù)據庫中檢索數(shù)據,還可以在網頁上顯示、編輯和排序數(shù)據,而不必編寫代碼或只需編寫少量代碼。若要連接到數(shù)據庫,必須將ConnectionString屬性設置為有效的連接字符串164

    164SqlDataSource控件(2)觀察源代碼可以看出,我們利用智能標記對各個SqlDataSource對象主要做了如下各個屬性的設置:ID如:ID="teacherDS"ConnectionString如:ConnectionString="<%$ConnectionStrings:conn%>"SelectCommand如:SelectCommand="SELECT[teachername]FROM[teacher]"其中,ConnectionStrings:conn對應的是Web.Config文件中的配置節(jié)165

    165練習:程序功能:實現(xiàn)條件查詢學生基本信息166

    166界面設計:類名對象名AllowPagingAllowSortingDataSourceIDGridViewgdvStudenttruetruestuDS167

    167DataList控件DataList類的方法主要是DataBind,該方法將控件和所有子控件綁定到指定的數(shù)據源DataList類的事件有:名稱說明CancelCommand對DataList控件中的某個項單擊Cancel按鈕時發(fā)生。DataBinding當服務器控件綁定到數(shù)據源時發(fā)生。DeleteCommand對DataList控件中的某個項單擊Delete按鈕時發(fā)生。EditCommand對DataList控件中的某個項單擊Edit按鈕時發(fā)生。ItemCommand當單擊DataList控件中的任一按鈕時發(fā)生。ItemCreated當在DataList控件中創(chuàng)建項時在服務器上發(fā)生。ItemDataBound當項被數(shù)據綁定到DataList控件時發(fā)生。SelectedIndexChanged在兩次服務器發(fā)送之間,在數(shù)據列表控件中選擇了不同的項時發(fā)生。UpdateCommand對DataList控件中的某個項單擊Update按鈕時發(fā)生。168

    168DataList控件模板使用DataList控件可以通過模板顯示數(shù)據綁定列表。模板名稱說明AlternatingItemTemplate如果已定義,則為DataList中的交替項提供內容和布局。如果未定義,則使用ItemTemplate。EditItemTemplate如果已定義,則為DataList中當前編輯的項提供內容和布局。如果未定義,則使用ItemTemplate。FooterTemplate如果已定義,則為DataList的腳注部分提供內容和布局。如果未定義,將不顯示腳注部分。HeaderTemplate如果已定義,則為DataList的頁眉節(jié)提供內容和布局。如果未定義,將不顯示頁眉節(jié)。ItemTemplate為DataList中的項提供內容和布局所要求的模板。SelectedItemTemplate如果已定義,則為DataList中當前選定項提供內容和布局。如果未定義,則使用ItemTemplate。SeparatorTemplate如果已定義,則為DataList中各項之間的分隔符提供內容和布局。如果未定義,將不顯示分隔符。169

    169配置文件的作用通過配置文件可以更有效的對網站進行管理。配置文件的主要作用有:如果配置進行了修改,系統(tǒng)會自動監(jiān)測到它們,無需重新啟動服務器。每個目錄都可以有自己的配置文件,其配置應用到該目錄及其下面的所有子目錄。每個目錄都可以通過創(chuàng)建起自己的配置文件繼承父目錄的配置,并重寫父目錄的配置??蛻舳藷o法用瀏覽器查看配置文件的內容,從而保證應用程序的安全。配置文件是一個基于XML的文件,可以使用任何文本編輯工具對其進行修改,輕松完成配置。170

    170Web.config配置文件Web.config文件可以在Web服務器的Web應用程序目錄中找到。該配置文件可以設置其所在目錄及其子目錄的配置??梢栽趹贸绦虻拿總€子目錄中添加Web.config文件,子目錄中的文件將繼承并重寫父目錄的Web.config文件的配置。該文件主要對Session管理、錯誤捕捉、安全管理、數(shù)據庫連接字符串等信息進行具體的配置。171

    171sessionState配置節(jié)sessionState配置節(jié)用于對Session對象進行配置。172

    172ConnectionStrings配置節(jié)ConnectionStrings配置節(jié)用于指定數(shù)據庫連接字符串。該配置節(jié)信息可以通過如下方式讀取:ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;173

    173appSettings配置節(jié)appSettings配置節(jié)包含自定義應用程序的設置。可以通過如下方式讀取配置信息:System.Configuration.ConfigurationSettings.AppSettings["ApplicationName"];174

    174customerErrors配置節(jié)customerErrors配置節(jié)用于為ASP.NET應用程序提供有關自定義錯誤信息的信息。defaultRedirect屬性用于指定出錯時將瀏覽器定向到的默認URL。mode屬性為必選的屬性,指定是啟用或禁用自定義錯誤,還是僅向遠程客戶端顯示自定義錯誤。它有下面三個取值。值說明On指定啟用自定義錯誤。如果未指定defaultRedirect,用戶將看到一般性錯誤。Off指定禁用自定義錯誤。這允許顯示標準的詳細錯誤。RemoteOnly指定僅向遠程客戶端顯示自定義錯誤并且向本地主機顯示ASP.NET錯誤。這是默認值。175

    1752022/10/20176

    當前文檔最多預覽五頁,下載文檔查看全文

    此文檔下載收益歸作者所有

    當前文檔最多預覽五頁,下載文檔查看全文
    溫馨提示:
    1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
    2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
    3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
    4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。
    最近更新
    更多
    大家都在看
    近期熱門
    相關標簽
    關閉