備課準(zhǔn)備(student)_第1頁
備課準(zhǔn)備(student)_第2頁
備課準(zhǔn)備(student)_第3頁
備課準(zhǔn)備(student)_第4頁
備課準(zhǔn)備(student)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1. 什么是ASP.NETASP.NET 是Microsoft公司推出的新一代建立動(dòng)態(tài)Web應(yīng)用程序的開發(fā)平臺(tái),是一種建立動(dòng)態(tài)Web應(yīng)用程序的新技術(shù)。它是.NET框架的一部分,可以使用任何 .NET兼容的語言(如Visual Basic.NET、C#、Jscript.NET)編寫ASP.NET應(yīng)用程序。微軟總裁兼首席執(zhí)行官Steve Ballmer給.NET下的定義為:“.NET代表一個(gè)集合,一個(gè)環(huán)境,一個(gè)可以作為平臺(tái)支持下一代Internet的可編程結(jié)構(gòu)?!保矗?NET = 新平臺(tái) + 標(biāo)準(zhǔn)協(xié)議 + 統(tǒng)一開發(fā)工具。 圖1 圖2圖1解釋:.NET Framework:Microsoft公司推

2、出的完全面向?qū)ο蟮能浖_發(fā)與運(yùn)行平臺(tái),是一個(gè)多語言組件開發(fā)和執(zhí)行環(huán)境,他提供了一個(gè)跨語言的統(tǒng)一編程環(huán)境。NET框架的設(shè)計(jì)目標(biāo)是讓開發(fā)人員更容易地建立Web應(yīng)用程序和Web服務(wù),使得Internet上的各應(yīng)用程序之間,可以使用Web服務(wù)進(jìn)行溝通。.NET框架具有兩個(gè)重要的組件: 公共語言運(yùn)行庫(Common Language Runtime, CLR):.NET Framework的基礎(chǔ),為多種語言提供了一種統(tǒng)一的運(yùn)行環(huán)境。.NET Framework類庫:可以使用它開發(fā)多種運(yùn)行程序,包括傳統(tǒng)的命令行或圖形用戶界面(GUI)應(yīng)用程序,以及基于ASP.NET所提供的最新創(chuàng)建的應(yīng)用程序(Web窗體和

3、XML Web Service)。圖2解釋:操作系統(tǒng)上部的三塊都屬于.NET 的內(nèi)容。具體關(guān)系為: 使用C# 語言(或者其它.NET 語言)開發(fā)程序需要調(diào)用 .NET 框架類庫實(shí)現(xiàn)特定功能,完成的代碼再轉(zhuǎn)換(編譯)成一種中間語言,然后這種中間語言就在公共語言運(yùn)行庫上執(zhí)行,公共語言庫會(huì)把中間語言轉(zhuǎn)換成操作系統(tǒng)能理解的的指令,計(jì)算機(jī)最后執(zhí)行這些指令。 C# 是微軟專門為 .NET 框架量身定做的語言,是微軟在推出 .NET 框架同時(shí)推出的開發(fā)語言。ASP.NET 是一種類型的應(yīng)用程序(和其它類型的程序比如桌面程序,控制臺(tái)程序是并列的),它是使用.NET 語言開發(fā)的 web(萬維網(wǎng))應(yīng)用程序,也就是

4、動(dòng)態(tài)網(wǎng)站。2.ASP.NET開發(fā)環(huán)境IIS:ASP.NET作為一項(xiàng)服務(wù),首先需要在運(yùn)行它的服務(wù)器上建立IIS。IIS是Microsoft公司推的Web服務(wù)器,通過IIS,開發(fā)人員可以更方便的調(diào)試程序或發(fā)布網(wǎng)站。(注:同學(xué)們首先看一下自己的電腦上是否已經(jīng)安裝了IIS,如果沒有安裝的話,可以使用操作系統(tǒng)安裝盤自行安裝?。¬isual Studio:ASP.NET是Visual Studio集成開發(fā)環(huán)境的一部分。(注:該程序安裝起來比較大!我們這里使用的是2010版本,目前也有高版本的2012,同學(xué)們也可自行選擇安裝!)建立同學(xué)們自己的第一個(gè)ASP.NET網(wǎng)站打開VS2010文件新建網(wǎng)站(左側(cè)選擇C

5、#)同時(shí)下方WEB位置自己可以選擇存放地址,并命名如:FirstWeb。建好之后可以按上方的綠色箭頭,調(diào)試運(yùn)行看一下效果(系統(tǒng)默認(rèn)的形式)!ASP.NET程序的文件結(jié)構(gòu) 1) App_Data 文件夾:這是VS 自動(dòng)創(chuàng)建的專門存放網(wǎng)站數(shù)據(jù)庫的文件夾。 2) web.config 文件:網(wǎng)站的配置文件,負(fù)責(zé)整個(gè)站點(diǎn)的參數(shù)配置,在以后的學(xué)習(xí)中將逐步了解它。 3)Default.aspx文件:網(wǎng)站的前臺(tái)頁面,主要負(fù)責(zé)頁面內(nèi)容的顯示 ,它里面可以包含以前學(xué)過的HTML 標(biāo)記。 4)Default.aspx.cs :網(wǎng)站頁面的后臺(tái)代碼,我們需要在這個(gè)文件里面編寫C# 代碼每個(gè).aspx的 Web窗體網(wǎng)頁

6、都有3種視圖方式,分別為“設(shè)計(jì)”、“拆分”和“源”。其中:設(shè)計(jì)視圖:可模擬用戶在瀏覽器中看到的界面; 拆分視圖:將HTML及設(shè)計(jì)界面同時(shí)呈現(xiàn); 源視圖:可讓設(shè)計(jì)人員對(duì)HTML及程序進(jìn)行編輯和調(diào)整。也可以自己增加一個(gè)新的頁面,比如:解決方案資源管理器右鍵點(diǎn)擊本項(xiàng)目添加新項(xiàng)Web窗體,定義名稱如firstpage.aspx。等待生成,然后按上方的綠色箭頭調(diào)試運(yùn)行看一下效果:空白頁面,因?yàn)樵谶@個(gè)頁面上我們什么也沒有寫。然后,雙擊【設(shè)計(jì)】視圖的頁面空白處,會(huì)自動(dòng)打開對(duì)應(yīng)的.cs程序頁面,同時(shí)給出一個(gè)空的page_load事件,可以在里面寫protected void Page_Load(object

7、sender, EventArgs e) Response.Write(hello ereryone!); 再次運(yùn)行,看一下效果!第一部分:常用控件(40分鐘)ASP.NET中常用的服務(wù)器控件,需要了解這些常用控件的屬性、方法和事件,并利用這些控件開發(fā)出功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。類型控件文本類型控件Label 標(biāo)簽控件,用于顯示用戶不能編輯的文本TextBox 文本框控件,用于輸入或顯示文本(單行、多行、密碼)按鈕類型控件Button 提交按鈕控件LinkButton 超鏈接按鈕控件,以超鏈接的形式顯示ImageButton 圖像按鈕控件,用于顯示具體圖像按鈕HyperLink 超鏈接控件,不會(huì)

8、引發(fā)事件,只實(shí)現(xiàn)導(dǎo)航功能選擇類型控件ListBox 顯示一組列表項(xiàng),用戶可從中選擇一項(xiàng)或多項(xiàng),自動(dòng)加滾動(dòng)條DropDownList 同ListBox,但只允許用戶從列表中選擇一項(xiàng)RadioButton 單選按鈕控件,可添加一組RadioButton,設(shè)置相同組名CheckBox 復(fù)選框,從一組中選擇一項(xiàng)或多項(xiàng)圖形顯示類型控件Image 用于在頁面上顯示圖像ImageMap 允許在圖片中定義一些熱點(diǎn)區(qū)域Panel容器控件Panel 在頁面內(nèi)為其他控件提供一個(gè)容器,作為一個(gè)單元進(jìn)行控制文件上傳控件FileUpload 向指定目錄上傳文件,包括一個(gè)文本框和一個(gè)瀏覽按鈕登錄控件Login 復(fù)合控件,集

9、成了登錄驗(yàn)證頁面中常見的用戶界面元素和功能CreatUserWizard 用于創(chuàng)建新網(wǎng)站用戶賬戶的用戶界面下面和同學(xué)們一起動(dòng)手制作一個(gè)簡單的登錄注冊(cè)頁面:1) 在該項(xiàng)目中添加一個(gè)新項(xiàng)WEB窗體,Login.aspx2)打開【設(shè)計(jì)】視圖:從【工具箱】中直接拖拉相應(yīng)控件,設(shè)計(jì)注冊(cè)頁面。注:如果找不到控件【工具箱】,請(qǐng)點(diǎn)擊頂部菜單 視圖工具箱,即可。 增加5個(gè)Label,分別是 姓名、密碼、性別、省份、愛好增加1個(gè)Button,提交按鈕,btnLogin增加2個(gè)TextBox,一個(gè)是txtName,一個(gè)是 txtpwd(把屬性中的textmode設(shè)為password)增加1組2個(gè)單選按鈕RadioB

10、utton,組名GroupName為 rdoSex,2個(gè)按鈕分別為rdoMale(文本值為男,checked為true,則為默認(rèn)),rdoFemale(文本值為女)增加1個(gè)下拉框DropDownList ,ddlProvince ,設(shè)置選項(xiàng)Items,添加(上海、北京、河南、四川等省份)增加4個(gè)復(fù)選框 CheckBox,分別為chkLike1(值為音樂),chkLike2(值為旅游),chkLike3(值為閱讀),chkLike4(值為運(yùn)動(dòng))3)試運(yùn)行一下,看一看效果。注意:此時(shí)我們是可以輸入數(shù)據(jù)的,但是這些數(shù)據(jù)并沒有傳輸出去,僅僅是輸入了而已,如何瀏覽器中數(shù)據(jù)傳輸出去呢,這就需要使用ASP.

11、NET的內(nèi)置對(duì)象。下表為ASP.NET中常用控件的命名規(guī)范,關(guān)鍵是前綴的縮寫,建議首字母小寫ControlPrefixExampleLabellbllblSurnameTextBoxtxttxtSurnameDataGriddgdgResultsButtonbtnbtnSaveImageButtonibtnibtnSaveHyperlinklnklnkHomePageDropDownListddlddlCompanyListBoxlstlstCompanyDataListdlstdlstAddressRepeaterreprepSectionCheckboxchkchkMailListChec

12、kBoxListchkchkAddressRadioButtonrdordoSexRadioButtonListrdordoAgeGroupImageimgimgLogoPanelpanpanSectionPlaceHolderplhplhHeaderCalendercalcalMyDateAdrotatoradradrBannerTabletbltblResultsAll ValidatorsvalvalCreditCardNumberValidationSummaryvalsvalsErrors第二部分:常用內(nèi)置對(duì)象ASP.NET提供了幾個(gè)重要內(nèi)置對(duì)象供程序設(shè)計(jì)人員使用,可以使用這些對(duì)象獲

13、取在瀏覽器請(qǐng)求中發(fā)送的信息,并將服務(wù)器處理的結(jié)果發(fā)送回瀏覽器,還可以存儲(chǔ)有關(guān)用戶的信息。1.Response對(duì)象用于將數(shù)據(jù)從服務(wù)器發(fā)送回瀏覽器,還可以用來在頁面中輸入數(shù)據(jù)、在頁面中跳轉(zhuǎn)、并傳遞各個(gè)頁面的參數(shù)。 1)Response.Write 如:Response.Write(hello ereryone!); 2)Response.Redirect 如:Response.Redirect(http:/localhost); 注:頁面跳轉(zhuǎn)時(shí)可以傳遞參數(shù):使用“?”分隔頁面的鏈接地址和參數(shù),有多個(gè)參數(shù)時(shí),參數(shù)之間用“&”分隔。如:Response.Redirect(“/welcome.aspx?

14、para1=one¶2=two”);Response對(duì)象的常用屬性及說明屬性說明Buffer獲取或設(shè)置一個(gè)值,該值指示是否緩沖輸出,并在完成處理整個(gè)相應(yīng)之后將其發(fā)送Cache 獲取Web頁的緩存策略,如過期時(shí)間、保密性和變化子句等Charset 設(shè)定或獲取HTTP的輸出字符編碼Expires 獲取或設(shè)置在瀏覽器上緩存的頁過期之前的分鐘數(shù)Cookies 獲取當(dāng)前請(qǐng)求的Cookie集合IsClientConnected 傳回客戶端是否仍然和Server連接SuppressContent 設(shè)定是否將HTTP的內(nèi)容發(fā)送至客戶端瀏覽器,若為true則網(wǎng)頁將不會(huì)傳至客戶端Response對(duì)象的常用

15、方法及說明方法說明AddHeader將一個(gè)HTTP頭添加到輸出流AppendToLog 將自定義日志信息添加到IIS日志文件Clear 將緩沖區(qū)的內(nèi)容清空End 將目前緩沖區(qū)中所有的內(nèi)容發(fā)送至客戶端,然后關(guān)閉Flush 將緩沖區(qū)中所有的數(shù)據(jù)發(fā)送至客戶端Redirect 將網(wǎng)頁重新導(dǎo)向另一個(gè)地址Write 將數(shù)據(jù)輸出到客戶端,輸出對(duì)象可以是字符、字符數(shù)組、字符串、對(duì)象WriteFile 將指定的文件直接寫入HTTP內(nèi)容輸出流,該文件必須已存在2.Request對(duì)象作用:用于檢索從瀏覽器向服務(wù)器發(fā)送的請(qǐng)求中的信息 Request對(duì)象的常用屬性及說明屬性說明ApplicationPath獲取服務(wù)器上

16、ASP.NET應(yīng)用程序虛擬應(yīng)用程序的根目錄路徑Browser獲取或設(shè)置有關(guān)正在請(qǐng)求的客戶端瀏覽器的功能信息ContentLength指定客戶端發(fā)送的內(nèi)容長度(以字節(jié)計(jì))Cookies獲取客戶端發(fā)送的Cookie集合FilePath獲取當(dāng)前請(qǐng)求的虛擬路徑Files獲取采用多部分MIME格式的由客戶端上傳的文件集合Form獲取窗體變量集合Item從Cookies、Form、QueryString或ServerVariables集合中獲取指定的對(duì)象Params獲取Cookies、Form、QueryString或ServerVariables項(xiàng)的組合集合Path獲取當(dāng)前請(qǐng)求的虛擬路徑QueryStr

17、ing獲取HTTP查詢字符串變量集合UserHostAddress獲取遠(yuǎn)程客戶端IP主機(jī)地址UserHostName獲取遠(yuǎn)程客戶端DNS名稱Request對(duì)象的常用方法及說明方法說明MapPath將請(qǐng)求的URL中的虛擬路徑映射到服務(wù)器上的物理路徑SaveAs 將HTTP請(qǐng)求保存到磁盤比如,我們現(xiàn)在就可以獲取之前注冊(cè)頁面上的所有數(shù)據(jù)。1)在注冊(cè)頁面的【設(shè)計(jì)】視圖點(diǎn)擊上 提交按鈕,觸發(fā)按鈕提交事件btnLogin_Click,添加如下代碼:protected void btnLogin_Click(object sender, EventArgs e) string strName=Request

18、txtName; string strPwd=Request.ParamstxtPwd; string strSex; string strProvince = RequestddlProvince; string strLike=; if(rdoMale.Checked=true) strSex=先生; else strSex=小姐; if (chkLike1.Checked = true) strLike = strLike + chkLike1.Text; if (chkLike2.Checked = true) strLike = strLike + chkLike2.Text; if

19、 (chkLike3.Checked = true) strLike = strLike + chkLike3.Text; ; if (chkLike4.Checked = true) strLike = strLike + chkLike4.Text; Response.Write(歡迎來自+strProvince+的+strName+strSex+,您的愛好是+strLike); Response.Redirect(firstpage.aspx?para1=+strName+¶2=+strSex); / 提交到其他頁面2) 如果需要提交到其他頁面并顯示處理的話,需要在其他頁面書寫相

20、應(yīng)代碼比如此處,在firstpage.aspx頁面的Page_Load事件中增加下列代碼即可。 protected void Page_Load(object sender, EventArgs e) string strName = Requestpara1; string strPwd = Requestpara2; Response.Write(strName+strPwd); 注:C#數(shù)據(jù)類型常用的命名規(guī)范數(shù)據(jù)類型 數(shù)據(jù)類型簡寫 標(biāo)準(zhǔn)命名舉例 Array arr arrShoppingList Boolean bln blnIsPostBack Byte byt bytPixelVal

21、ue Char chr chrDelimiter DateTime dtm dtmStartDate Decimal dec decAverageHeight Double dbl dblSizeofUniverse Integer int intRowCounter Long lng lngBillGatesIncome Objectobj objReturnValue Short shr shrAverage Single sng sngMaximum String strstrFirstName 3.Application對(duì)象作用:用于共享應(yīng)用程序級(jí)信息,即多個(gè)用戶可以共享一個(gè)Appli

22、cation對(duì)象。Application對(duì)象的常用集合及說明集合說明Contents用于訪問應(yīng)用程序狀態(tài)集合中的對(duì)象名StaticObjects 確定某對(duì)象指定屬性的值或遍歷集合,并檢索所有靜態(tài)對(duì)象的屬性Application對(duì)象的常用屬性及說明屬性說明AllKeys返回全部Application對(duì)象變量名到一個(gè)字符串?dāng)?shù)組中Count獲取Application對(duì)象變量的數(shù)量Item允許使用索引或Application變量名稱傳回內(nèi)容值A(chǔ)pplication對(duì)象的常用方法及說明方法說明Add新增一個(gè)Application對(duì)象變量Clear 清除全部Application對(duì)象變量Lock 鎖定全部

23、Application對(duì)象變量Remove使用變量名移除一個(gè)Application對(duì)象變量RemoveAll移除全部Application對(duì)象變量Set使用變量名更新一個(gè)Application對(duì)象變量的內(nèi)容UnLock解除鎖定的Application對(duì)象變量4.Session對(duì)象作用:用于存儲(chǔ)在多個(gè)頁面調(diào)用之間特定用戶的信息。Session對(duì)象的常用集合及說明集合說明Contents用于確定指定會(huì)話項(xiàng)的值或遍歷Session集合StaticObjects 確定某對(duì)象指定屬性的值或遍歷集合,并檢索所有靜態(tài)對(duì)象的屬性Session對(duì)象的常用屬性及說明屬性說明TimeOut傳回或設(shè)定Session對(duì)

24、象變量的有效時(shí)間,當(dāng)使用者超過有效時(shí)間而沒有動(dòng)作時(shí),Session對(duì)象就會(huì)失效,默認(rèn)值為20分鐘Session對(duì)象的常用方法及說明方法說明Abandon結(jié)束當(dāng)前會(huì)話,并清除會(huì)話中的所有信息。如果用戶隨后訪問頁面,可以為它創(chuàng)建新會(huì)話Clear 清除全部Session對(duì)象變量,但不結(jié)束會(huì)話Application和Session對(duì)象舉例:計(jì)數(shù)器(1)在全局應(yīng)用程序類(即Global.asax文件)的Application_Start事件中把訪問數(shù)初始化為0。void Application_Start(object sender, EventArgs e) ApplicationCount = 0;

25、(2)當(dāng)有新的用戶訪問網(wǎng)站時(shí),建立一個(gè)新的Session對(duì)象,并在Session對(duì)象的Session_Start事件中對(duì)Application對(duì)象加鎖,以防止多個(gè)用戶同時(shí)訪問頁面造成并行,同時(shí)將訪問人數(shù)加1。Global.asax中:void Session_Start(object sender, EventArgs e) Application.Lock(); Applicationcount = (int)Applicationcount + 1; Application.UnLock(); (3)對(duì)Global.asax文件進(jìn)行設(shè)置后,需要將訪問人數(shù)在網(wǎng)站的默認(rèn)頁面顯示出來,只需在De

26、fault.aspx頁面上添加一個(gè)Label控件,用于顯示訪問人數(shù)即可。protected void Page_Load(object sender, EventArgs e) Label1.Text = 您是該網(wǎng)站的第 + Applicationcount.ToString() + 個(gè)訪客;5. Server對(duì)象 定義了一個(gè)與Web服務(wù)器相關(guān)的類,提供對(duì)服務(wù)器上的方法和屬性的訪問,用于訪問服務(wù)器上的資源。Server對(duì)象的常用屬性及說明屬性說明MachineName獲取服務(wù)器的計(jì)算機(jī)名稱ScriptTimeout獲取和設(shè)置請(qǐng)求超時(shí)值(以秒計(jì))Server對(duì)象的常用方法及說明方法說明Execu

27、te在當(dāng)前請(qǐng)求的上下文中執(zhí)行指定資源的處理程序,然后將控制返回給該處理程序HtmlDecode 對(duì)已被編碼以消除無效HTML字符的字符串進(jìn)行解碼HtmlEncode 對(duì)要在瀏覽器中顯示的字符串進(jìn)行編碼MapPath 返回與Web服務(wù)器上的指定虛擬路徑相對(duì)于的物理文件路徑UrlDecode 對(duì)字符串進(jìn)行解碼,該字符串為了進(jìn)行HTTP傳輸而進(jìn)行編碼并在URL中發(fā)送到服務(wù)器UrlEncode 編碼字符串,以便通過URL從Web服務(wù)器到客戶端進(jìn)行可靠地HTTP傳輸transfer 終止當(dāng)前頁的執(zhí)行,并為當(dāng)前請(qǐng)求開始執(zhí)行新頁例:Response.Write(Server.MapPath(Default.

28、aspx);第三部分: ADO.NET數(shù)據(jù)庫操作ADO.NET是.NET Framework中的一系列類庫,它使開發(fā)人員更加方便地在開發(fā)過程中使用和操作數(shù)據(jù)。在ADO.NET中,大量復(fù)雜數(shù)據(jù)操作的代碼被封裝起來,所以開發(fā)人員在ASP.NET應(yīng)用程序開發(fā)中,只需要編寫少量的代碼即可處理大量的操作。 ADO.NET提供對(duì)Microsoft SQL Server數(shù)據(jù)源以及通過OLEDB和XML公開的數(shù)據(jù)源的一致的訪問,程序開發(fā)人員可以通過ADO.NET連接這些數(shù)據(jù)源,并檢索、處理和更新所包含的數(shù)據(jù)。ADO.NET的五個(gè)主要對(duì)象:1) Connection對(duì)象:主要提供與數(shù)據(jù)庫的連接功能。(比喻為搬運(yùn)

29、數(shù)據(jù)的道路)2) DataSet對(duì)象:ADO.NET的核心概念,它是一個(gè)數(shù)據(jù)庫容器,可以當(dāng)做存在于內(nèi)存的數(shù)據(jù)庫,無論數(shù)據(jù)源是什么,它都會(huì)提供一致的關(guān)系編程模型。(DataSet是可以獨(dú)立于.NET Framework數(shù)據(jù)提供程序進(jìn)行使用的)3) DataAdapter對(duì)象:提供連接DataSet對(duì)象和數(shù)據(jù)源的橋梁,使用Command對(duì)象在數(shù)據(jù)源中執(zhí)行SQL命令,以便將數(shù)據(jù)加載到DataSet中,并確保DataSet中數(shù)據(jù)的更改與數(shù)據(jù)源保持一致。(適配器,比喻為裝載程序的卡車,一次性搬所有數(shù)據(jù)(如十箱蘋果),并將數(shù)據(jù)臨時(shí)存放于程序端數(shù)據(jù)集,而且可以自動(dòng)打開倉庫門)4) DataReader對(duì)象:

30、通過Command對(duì)象提供從數(shù)據(jù)庫檢索信息的功能,以一種只讀的、向前的、快速的方式訪問數(shù)據(jù)庫,一次讀取一條記錄,然后遍歷整個(gè)結(jié)果集。(讀取器,比喻為摩托車,一箱一箱的搬數(shù)據(jù)(如一箱蘋果),必須自己下來打開倉庫大門,而且大門一直打開,直到他把數(shù)據(jù)搬完才關(guān)閉,通道需要手動(dòng)打開或關(guān)閉。)5) Command對(duì)象:用于返回?cái)?shù)據(jù)、修改數(shù)據(jù)、運(yùn)行存儲(chǔ)過程 以及發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫命令。(操作工人,由它來騎這個(gè)摩托車去搬數(shù)據(jù),而DataAdapter陪司機(jī)。如果只要一個(gè)數(shù)據(jù)行(如一個(gè)蘋果),則工人可以自己直接去那,不用摩托車。如需要增、刪、改則也只有操作工人自己去做,比如要替換、增加或者扔掉某個(gè)蘋果,

31、則由工人自己沿著道路走過去操作,通道需要手動(dòng)打開或關(guān)閉。)從速度上,讀取器比適配器快得多。1) 在App_Code文件夾下增加一個(gè)新項(xiàng),類,命名為DBHelper.cs。2) 測(cè)試與數(shù)據(jù)庫的連接Microsoft公司提供了如下4種數(shù)據(jù)提供程序的連接對(duì)象:SQL Server.NET : SqlConnection連接對(duì)象,只能訪問SQL Server數(shù)據(jù)庫,高效(使用)OLE DB.NET : OleDbConnection連接對(duì)象,可以訪問所有數(shù)據(jù)庫ODBC.NET : ODBCConnection連接對(duì)象Oracle.NET : OracleConnection連接對(duì)象注:首先我們要有數(shù)據(jù)

32、庫,比如此處我們建立一個(gè)TestDB,里面有一張UserTable??蓪⒃摂?shù)據(jù)庫存于該項(xiàng)目的App_Code文件夾下。CREATE TABLE dbo.UserTable(name nvarchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,pwd nvarchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,sex nvarchar(2) COLLATE Chinese_PRC_CI_AS NOT NULL,province nvarchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,i

33、nterests nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL)命名空間:首先增加兩個(gè)命名空間,包含要用到的兩個(gè)類App_code/DBHelper.csusing System.Data;using System.Data.SqlClient; public static void SqlConnection() /建立連接通道 string conStr = server=ZYH-PC;database=TestDB;uid=sa;pwd=; /連接通道字符串 SqlConnection conn = new SqlConnection(conSt

34、r); /連接通道對(duì)象 conn.Open(); /打開通道 / conn.Close(); /關(guān)閉通道,稀缺資源,不用就要釋放在login頁面的提交按鈕觸發(fā)事件中做如下調(diào)用DBHelper.SqlConnection(); 運(yùn)行該頁面觀察運(yùn)行結(jié)果,如果連接失敗,系統(tǒng)會(huì)有異常顯示。注意:要求在DBHelper中所有的方法均為靜態(tài)static,否則就必須實(shí)例化調(diào)用。3) 嘗試添加一條記錄,在DBHelper.cs文件中增加下列代碼:public static int ExecuteNonQuery() int res = -1; string conStr = server=ZYH-PC;dat

35、abase=TestDB;uid=sa;pwd=; SqlConnection conn = new SqlConnection(conStr); string sqlstr = insert into UserTable values(1,1,男,上海,音樂旅游); SqlCommand cmd = new SqlCommand(sqlstr, conn); conn.Open(); res = cmd.ExecuteNonQuery(); conn.Close(); return res; 在login頁面的提交按鈕觸發(fā)事件中做如下調(diào)用 int res = DBHelper.Execute

36、NonQuery(); if (res 0) Response.Write(恭喜你,執(zhí)行成功!);如果希望以對(duì)話框的形式出現(xiàn)成功提示,也可寫成: Response.Write(alert(恭喜你,執(zhí)行成功!);4)此時(shí)增加的是一個(gè)固定的記錄,如果想從登錄頁面將填寫的信息提交入庫,增可以傳遞參數(shù)。將DBHelper.cs文件中方法修改如下:注:之前的兩個(gè)方法都可以不需要了。private static String connStr = server=ZYH-PC;database=TestDB;uid=sa;pwd=; /連接通道字符串 public static SqlConnection G

37、etConn() return new SqlConnection(connStr); /建立連接通道/增刪改均可,且可帶參數(shù) public static int ExecuteNonQuery(CommandType ct, String sqlStr, params SqlParameter paras) int res = -1; / 返回受影響行數(shù) using (var conn = GetConn() /建立連接,使用using可以保證在大括號(hào)結(jié)束時(shí)及時(shí)釋放資源 var cmd = new SqlCommand(sqlStr, conn); /新建命令對(duì)象,告訴它走哪條路去做什么事

38、cmd.CommandType = ct;/告訴cmd,執(zhí)行的語句類型 cmd.Parameters.AddRange(paras); /傳遞參數(shù) conn.Open(); /打開連接通道 res = cmd.ExecuteNonQuery();/執(zhí)行語句,返回受影響行數(shù) conn.Close(); /關(guān)閉連接通道 cmd.Dispose(); /釋放資源 return res; 在login頁面的提交按鈕觸發(fā)事件中做如下調(diào)用 String sqlStr = insert into UserTable values(name,pwd,sex,province,interests); int r

39、es = DBHelper.ExecuteNonQuery(CommandType.Text, sqlStr, new SqlParameter(name, strName), new SqlParameter(pwd, strPwd), new SqlParameter(sex, strSex), new SqlParameter(province, strProvince), new SqlParameter(interests, strLike); if (res 0) Response.Write(alert(恭喜你,執(zhí)行成功!); 不要忘了在login頁面頂端增加命名空間,否則系統(tǒng)不

40、認(rèn)得這些對(duì)象:using System.Data;using System.Data.SqlClient;5)若此時(shí)將UserTable中name屬性設(shè)為主碼,即不允許有同名的人注冊(cè),那么一旦我們輸入同名的姓名,則頁面會(huì)出錯(cuò),如何捕獲這些錯(cuò)誤,并告知用戶,需要使用trycatch。 首先設(shè)置主碼,可先試驗(yàn)一下出錯(cuò)狀況。然后在login頁面的提交按鈕觸發(fā)事件中上一步代碼修改為: try String sqlStr = insert into UserTable values(name,pwd,sex,province,interests); int res = DBHelper.ExecuteN

41、onQuery(CommandType.Text, sqlStr, new SqlParameter(name, strName), new SqlParameter(pwd, strPwd), new SqlParameter(sex, strSex), new SqlParameter(province, strProvince), new SqlParameter(interests, strLike); if (res 0) Response.Write(alert(恭喜你,執(zhí)行成功!); catch Response.Write(alert(對(duì)不起,執(zhí)行失??!); 6)但這樣做,只能

42、告訴用戶出錯(cuò)了,用戶并不知道是什么錯(cuò)誤,我們可以繼續(xù)細(xì)化 catch中的代碼,分不同的形式進(jìn)行提醒。首先:在DBHelper.cs文件中增加下列方法/返回查詢語句第一行第一列的結(jié)果T 泛型 的T是類型參數(shù),起占位符的作用,編譯時(shí)被真正類型取代。 public static T ExecuteScalar(CommandType ct, String sqlStr, params SqlParameter paras) using (var conn = GetConn() SqlCommand cmd = new SqlCommand(sqlStr, conn); cmd.CommandTyp

43、e = ct; cmd.Parameters.AddRange(paras); conn.Open(); T result = default(T); result = (T)cmd.ExecuteScalar(); return result; 然后,細(xì)化login頁面的提交按鈕觸發(fā)事件中catch中的代碼:catch string sqlstr = select COUNT(*) from UserTable where name = name; int count = DBHelper.ExecuteScalar(CommandType.Text, sqlstr, new SqlPara

44、meter(name, strName); if (count 0) Response.Write(alert(對(duì)不起,該用戶名以及存在!); else Response.Write(alert(對(duì)不起,執(zhí)行失敗!); 7)下面開始制作查找頁面,可以根據(jù)提交的查找條件查詢出符合要求的記錄,并顯示給用戶:首先,增加一個(gè)新的web窗體,search.aspx,設(shè)計(jì)該頁面。增加1個(gè)Button,提交按鈕,btnSearch增加1個(gè)TextBox,一個(gè)是txtName 增加2個(gè)下拉框DropDownList ,1個(gè)是ddlProvince ,設(shè)置選項(xiàng)Items,添加(不限、上海、北京、河南、四川等省份

45、);,1個(gè)是ddlSex ,設(shè)置選項(xiàng)Items,添加(不限、男,女)點(diǎn)擊按鈕觸發(fā)事件btnSearch_Click:其次,在DBHelper.cs文件中增加下列方法,查詢 /把查詢結(jié)果放到數(shù)據(jù)表中,較常用public static DataTable ExecuteDataTable(CommandType ct, String sqlStr, params SqlParameter paras) using (var conn = GetConn() SqlCommand cmd = new SqlCommand(sqlStr, conn); cmd.CommandType = ct; cm

46、d.Parameters.AddRange(paras); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); return dt; /也可使用下面的方法,把查詢結(jié)果放到數(shù)據(jù)集中public static DataSet ExecuteDataSet(CommandType ct, String sqlStr, params SqlParameter paras) DataSet ds = null; using (var conn = GetConn() var

47、 cmd = new SqlCommand(sqlStr, conn); cmd.CommandType = ct; cmd.Parameters.AddRange(paras); var da = new SqlDataAdapter(cmd); ds = new DataSet(); da.Fill(ds); cmd.Dispose(); da.Dispose(); return ds; 第三,開始設(shè)計(jì)查詢結(jié)果的輸出顯示,這里就必須了解 .NET的數(shù)據(jù)控件了,常用的有GridView,DataList以及Reapter等,在此我們使用GridView。DataList和Repeater比較

48、相似,美化比較靈活,repeater只讀,datalist可讀可寫。GridView適用于很多數(shù)據(jù)的顯示,效率高,但是樣式比較死板,也可以修改,不夠靈活。此處一般都用GridView,顯示,刷新。實(shí)現(xiàn)功能就好。 GridView控件以表格的形式顯示數(shù)據(jù)源中的數(shù)據(jù),每列表示一個(gè)字段,每行表示一個(gè)記錄,使用該控件,可以在不編寫代碼的情況下實(shí)現(xiàn)分頁、排序等功能。常用屬性屬性說明AllowPaging獲取或設(shè)置一個(gè)值,該值指示是否啟用分頁功能AllowSorting獲取或設(shè)置一個(gè)值,該值指示是否啟用排序功能AutoGenerateColumns獲取或設(shè)置一個(gè)值,該值指示是否為數(shù)據(jù)源中的每個(gè)字段自動(dòng)創(chuàng)建

49、綁定字段CssClass獲取或設(shè)置由Web服務(wù)器控件在客戶端呈現(xiàn)的級(jí)聯(lián)樣式表(CSS)類DataKeyNames獲取或設(shè)置一個(gè)數(shù)組,該數(shù)組包含了顯示在GridView控件中的項(xiàng)的主鍵字段的名稱DataKeys獲取一個(gè)DataKey對(duì)象集合,這些對(duì)象表示GridView控件的每一行的數(shù)據(jù)鍵值DataMember當(dāng)數(shù)據(jù)源包含多個(gè)不同的數(shù)據(jù)項(xiàng)列表時(shí),獲取或設(shè)置數(shù)據(jù)綁定控件綁定到的數(shù)據(jù)列表的名稱DataSource獲取或設(shè)置對(duì)象,數(shù)據(jù)綁定控件從該對(duì)象中檢索其數(shù)據(jù)項(xiàng)列表DataSourceID獲取或設(shè)置控件的ID,數(shù)據(jù)綁定控件從該控件中檢索其數(shù)據(jù)項(xiàng)列表Enabled獲取或設(shè)置一個(gè)值,該值指示是否啟用Web服務(wù)器控件HorizontalAlign獲取或設(shè)置GridView控件在頁面上的水平對(duì)齊方式ID獲取或設(shè)置分配給服務(wù)器控件的編程標(biāo)識(shí)符Page獲取對(duì)包含服務(wù)器控件的Page實(shí)例的引用PageCount獲取在GridView控件中顯示數(shù)據(jù)源記錄所需的頁數(shù)PageIndex獲取或設(shè)

溫馨提示

  • 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)論