c#第13章 ASP NET Web應(yīng)用程序開(kāi)發(fā)_第1頁(yè)
c#第13章 ASP NET Web應(yīng)用程序開(kāi)發(fā)_第2頁(yè)
c#第13章 ASP NET Web應(yīng)用程序開(kāi)發(fā)_第3頁(yè)
c#第13章 ASP NET Web應(yīng)用程序開(kāi)發(fā)_第4頁(yè)
c#第13章 ASP NET Web應(yīng)用程序開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第1部分部分第第1313章章 ASP.NET WebASP.NET Web應(yīng)用程序開(kāi)發(fā)應(yīng)用程序開(kāi)發(fā) 13.1 Web應(yīng)用程序中的常用對(duì)象應(yīng)用程序中的常用對(duì)象 13.2 Global.asax文件文件 13.3 網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞 13.4 在在Web.Config中保存配置中保存配置213.1 WebWeb應(yīng)用程序中的常用對(duì)象應(yīng)用程序中的常用對(duì)象 在在Web應(yīng)用程序運(yùn)行時(shí),應(yīng)用程序運(yùn)行時(shí),ASP.NET將維護(hù)與當(dāng)前應(yīng)將維護(hù)與當(dāng)前應(yīng)用程序、每個(gè)用戶會(huì)話、當(dāng)前用程序、每個(gè)用戶會(huì)話、當(dāng)前HTTP請(qǐng)求、請(qǐng)求的請(qǐng)求、請(qǐng)求的Web窗體頁(yè)等有關(guān)的信息。窗體頁(yè)等有關(guān)的信息。 ASP.

2、NET頁(yè)框架包含一系列封裝此上下文信息的類。頁(yè)框架包含一系列封裝此上下文信息的類。在代碼中使用這些類的實(shí)例訪問(wèn)內(nèi)部對(duì)象。在代碼中使用這些類的實(shí)例訪問(wèn)內(nèi)部對(duì)象。313.1 WebWeb應(yīng)用程序中的常用對(duì)象(續(xù))應(yīng)用程序中的常用對(duì)象(續(xù))常用的對(duì)象及對(duì)應(yīng)類常用的對(duì)象及對(duì)應(yīng)類對(duì)象名對(duì)象名說(shuō)明說(shuō)明ASP.NETASP.NET類類ResponseResponse提供對(duì)當(dāng)前頁(yè)的輸出流的訪問(wèn)提供對(duì)當(dāng)前頁(yè)的輸出流的訪問(wèn)HttpResponseHttpResponseRequestRequest提供對(duì)當(dāng)前頁(yè)請(qǐng)求的訪問(wèn)提供對(duì)當(dāng)前頁(yè)請(qǐng)求的訪問(wèn)HttpRequestHttpRequestServerServer公開(kāi)可

3、以用于在頁(yè)之間傳輸控件的實(shí)用工具方法,公開(kāi)可以用于在頁(yè)之間傳輸控件的實(shí)用工具方法,對(duì)對(duì) HTML HTML 文本進(jìn)行編碼和解碼等文本進(jìn)行編碼和解碼等HttpServerUtilityHttpServerUtilityApplicationApplication提供對(duì)作用于所有會(huì)話的應(yīng)用程序范圍的方法和事提供對(duì)作用于所有會(huì)話的應(yīng)用程序范圍的方法和事件的訪問(wèn)等件的訪問(wèn)等HttpApplicationStateHttpApplicationStateSessionSession為當(dāng)前用戶會(huì)話提供信息等為當(dāng)前用戶會(huì)話提供信息等HttpSessionStateHttpSessionState413.1.

4、1 Response與與RequestuResponse對(duì)象:用于向客戶端發(fā)送信息,該對(duì)象提對(duì)象:用于向客戶端發(fā)送信息,該對(duì)象提供了很多有用的屬性和方法,常用有:供了很多有用的屬性和方法,常用有: 1) Response.Write方法,用于將字符、字符串、字符數(shù)組寫方法,用于將字符、字符串、字符數(shù)組寫入入HTTP輸出內(nèi)容流。輸出內(nèi)容流。 例如:例如:Response.Write(this is a test.); 2) Response.WriteFile方法,用于將指定的文件寫入方法,用于將指定的文件寫入HTTP輸輸出內(nèi)容流。出內(nèi)容流。 例如:例如:Response.WriteFile(t

5、est.txt); 3) Response.Redirect方法,用于將客戶端重定向到新的方法,用于將客戶端重定向到新的URL。 例如:例如:Response.Redirect(test.aspx);513.1.1 Response與與RequestuRequest對(duì)象:獲取請(qǐng)求的頁(yè)的對(duì)象:獲取請(qǐng)求的頁(yè)的 HttpRequest 對(duì)象。該對(duì)對(duì)象。該對(duì)象使象使 ASP.NET 能夠讀取客戶端在能夠讀取客戶端在 Web 請(qǐng)求期間發(fā)送的請(qǐng)求期間發(fā)送的 HTTP 值。值。 例如:例如: Request.Browser.Platform 客戶端使用的操作系統(tǒng)客戶端使用的操作系統(tǒng) Request.Brow

6、ser.Type 客戶端使用的瀏覽器類型客戶端使用的瀏覽器類型 Request.UserHostAddress 客戶端客戶端IP地址地址例例13-16protected void Page_Load(object sender, EventArgs e) / 在此處放置用戶代碼以初始化頁(yè)面在此處放置用戶代碼以初始化頁(yè)面 string weekDays = 星期日星期日, 星期一星期一, 星期二星期二, 星期三星期三, 星期四星期四, 星期五星期五, 星期六星期六 ; DateTime now = DateTime.Now; LabelDateTime.Text = string.Format(

7、今天是今天是0:yyyy年年M月月d日日 1, now, weekDays(int)now.DayOfWeek); LabelInfo.Text = string.Format(您當(dāng)前的操作系統(tǒng)是:您當(dāng)前的操作系統(tǒng)是:0,使用的瀏覽器為:使用的瀏覽器為:1,IP地址為:地址為:2, Request.Browser.Platform, Request.Browser.Type, Request.UserHostAddress); 713.1.2 Application與與Session對(duì)象對(duì)象uApplication對(duì)象是一個(gè)應(yīng)用程序級(jí)的對(duì)象,它包含的數(shù)據(jù)可對(duì)象是一個(gè)應(yīng)用程序級(jí)的對(duì)象,它包含的數(shù)

8、據(jù)可以在整個(gè)以在整個(gè)Web站點(diǎn)中被所有用戶使用,并且可以在網(wǎng)站運(yùn)行站點(diǎn)中被所有用戶使用,并且可以在網(wǎng)站運(yùn)行期間持久地保存數(shù)據(jù),即利用期間持久地保存數(shù)據(jù),即利用Application對(duì)象可以定義類似對(duì)象可以定義類似于所有用戶公用的全局變量。于所有用戶公用的全局變量。 由于由于Application對(duì)象被整個(gè)網(wǎng)站的所有用戶使用,所以對(duì)其對(duì)象被整個(gè)網(wǎng)站的所有用戶使用,所以對(duì)其進(jìn)行操作時(shí),需要先進(jìn)行鎖定,操作完成后再解除鎖定。進(jìn)行操作時(shí),需要先進(jìn)行鎖定,操作完成后再解除鎖定。 Application.Lock(); Applicationcounter= (int)Applicationcounter

9、+1; Application.UnLock(); 813.1.2 Application與與Session對(duì)象(續(xù))對(duì)象(續(xù))uSession對(duì)象可以用來(lái)區(qū)分不同的瀏覽器客戶。當(dāng)不同的瀏對(duì)象可以用來(lái)區(qū)分不同的瀏覽器客戶。當(dāng)不同的瀏覽器客戶訪問(wèn)服務(wù)器應(yīng)用程序時(shí),服務(wù)器會(huì)分別為其分配覽器客戶訪問(wèn)服務(wù)器應(yīng)用程序時(shí),服務(wù)器會(huì)分別為其分配一段內(nèi)存空間用于保存不同用戶的數(shù)據(jù)信息一段內(nèi)存空間用于保存不同用戶的數(shù)據(jù)信息,即即每一個(gè)客戶每一個(gè)客戶都可以有自己的都可以有自己的Session。 u定義與使用定義與使用Session的方法的方法 : Sessiononline=true; Sessioncounte

10、r= (int)Sessioncounter+1;913.2 Global.asax文件文件 Global.asax文件也稱為文件也稱為ASP.NET應(yīng)用程序文件,該文件應(yīng)用程序文件,該文件是一個(gè)可選的文件,它包含響應(yīng)是一個(gè)可選的文件,它包含響應(yīng)ASP.NET或或HTTP模塊所模塊所引發(fā)的應(yīng)用程序級(jí)別和會(huì)話級(jí)別事件的代碼。引發(fā)的應(yīng)用程序級(jí)別和會(huì)話級(jí)別事件的代碼。Global.asax文件駐留在文件駐留在ASP.NET應(yīng)用程序的根目錄中。應(yīng)用程序的根目錄中。運(yùn)行運(yùn)行ASP.NET應(yīng)用程序時(shí),應(yīng)用程序時(shí),ASP.NET會(huì)自動(dòng)分析會(huì)自動(dòng)分析Global.asax并將其編譯到一個(gè)動(dòng)態(tài)生成的并將其編譯到

11、一個(gè)動(dòng)態(tài)生成的.NET Framework類中。由于類中。由于Global.asax文件不是必需的,因文件不是必需的,因此只在希望處理應(yīng)用程序事件或會(huì)話事件時(shí),才應(yīng)該創(chuàng)此只在希望處理應(yīng)用程序事件或會(huì)話事件時(shí),才應(yīng)該創(chuàng)建該文件。建該文件。 10 Global.asax文件中包含的常用事件:文件中包含的常用事件: 1) Application_Start事件事件 第一個(gè)客戶首次請(qǐng)求頁(yè)面時(shí)觸發(fā)。第一個(gè)客戶首次請(qǐng)求頁(yè)面時(shí)觸發(fā)。 2) Session_Start事件事件 每個(gè)客戶首次請(qǐng)求頁(yè)面時(shí)都觸發(fā)。每個(gè)客戶首次請(qǐng)求頁(yè)面時(shí)都觸發(fā)。 3) Session_End事件事件 在關(guān)閉應(yīng)用程序或者每個(gè)客戶在規(guī)定時(shí)

12、間內(nèi)沒(méi)有提出請(qǐng)求時(shí)在關(guān)閉應(yīng)用程序或者每個(gè)客戶在規(guī)定時(shí)間內(nèi)沒(méi)有提出請(qǐng)求時(shí)觸發(fā)。觸發(fā)。 4) Application_End事件事件 在關(guān)閉應(yīng)用程序或者最后一個(gè)客戶在規(guī)定時(shí)間內(nèi)沒(méi)有提出請(qǐng)?jiān)陉P(guān)閉應(yīng)用程序或者最后一個(gè)客戶在規(guī)定時(shí)間內(nèi)沒(méi)有提出請(qǐng)求時(shí)觸發(fā)。求時(shí)觸發(fā)。例例13-211void Application_Start(object sender, EventArgs e) Applicationcounter = 0; ApplicationuserCounter = 0; System.Data.SqlClient.SqlConnection conn = new System.Data.Sql

13、Client.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStringswebdevelopConnectionString.ConnectionString); System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand(select * from logincount , conn); System.Data.SqlClient.SqlDataReader rd = null; conn.Open();

14、rd = command.ExecuteReader(); if (rd.Read() ApplicationuserCounter = Convert.ToInt32(rdcount); rd.Close(); conn.Close(); 12void Session_Start(object sender, EventArgs e) Application.Lock(); Applicationcounter = (int)Applicationcounter + 1; ApplicationuserCounter = (int)ApplicationuserCounter + 1;/統(tǒng)計(jì)

15、網(wǎng)站登錄次數(shù)統(tǒng)計(jì)網(wǎng)站登錄次數(shù)SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStringswebdevelopConnectionString.ConnectionString); conn.Open(); SqlCommand command = new SqlCommand(string.Format(update logincount set count =0,(int)ApplicationuserCounter) , conn); command.Ex

16、ecuteNonQuery(); conn.Close(); Application.UnLock(); SessionuserName = ; Sessionid = ; /在線論壇用在線論壇用 Sessionzhuti = ; /在線論壇用在線論壇用 13void Session_End(object sender, EventArgs e) Application.Lock(); Applicationcounter = (int)Applicationcounter - 1; Application.UnLock(); 1413.3 網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞 常用有下面

17、幾種切換網(wǎng)頁(yè)的方法:常用有下面幾種切換網(wǎng)頁(yè)的方法:1) 利用鏈接切換到新網(wǎng)頁(yè),比如使用利用鏈接切換到新網(wǎng)頁(yè),比如使用HyperLink控件直接鏈接控件直接鏈接到其他網(wǎng)頁(yè)。到其他網(wǎng)頁(yè)。2) 利用客戶端腳本和利用客戶端腳本和HTML控件切換到新網(wǎng)頁(yè),比如利用客戶控件切換到新網(wǎng)頁(yè),比如利用客戶端腳本的端腳本的open、ShowModalDialog、ShowModallessDialog以及以及HTML的的IFRAME等。等。3) 使用使用Response.Redirect方法切換到新的網(wǎng)頁(yè)。方法切換到新的網(wǎng)頁(yè)。4) 使用使用Server.Transfer方法切換到新的網(wǎng)頁(yè)。方法切換到新的網(wǎng)頁(yè)。 1

18、513.3 網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞(續(xù))網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞(續(xù)) Response.Redirect和和Server.Transfer方法均可以在代碼隱藏方法均可以在代碼隱藏類中編寫代碼切換到新的網(wǎng)頁(yè),不同點(diǎn):類中編寫代碼切換到新的網(wǎng)頁(yè),不同點(diǎn):u Response.Redirect方法不限于方法不限于.aspx網(wǎng)頁(yè),也不限于當(dāng)前網(wǎng)網(wǎng)頁(yè),也不限于當(dāng)前網(wǎng)站。站。Server.Transfer方法只能切換到方法只能切換到同一個(gè)應(yīng)用程序同一個(gè)應(yīng)用程序 .aspx網(wǎng)網(wǎng)頁(yè)。頁(yè)。uResponse.Redirect方法切換到新網(wǎng)頁(yè)之后,瀏覽器的地址欄方法切換到新網(wǎng)頁(yè)之后,瀏覽器的地址欄將顯示新的網(wǎng)址,將顯

19、示新的網(wǎng)址,Server.Transfer方法切換到新的網(wǎng)頁(yè)后,方法切換到新的網(wǎng)頁(yè)后,瀏覽器的地址欄仍然顯示原來(lái)的地址,相對(duì)來(lái)說(shuō)保密性好一瀏覽器的地址欄仍然顯示原來(lái)的地址,相對(duì)來(lái)說(shuō)保密性好一些。些。uResponse.Redirect方法只適用于傳遞小于方法只適用于傳遞小于2KB的參數(shù)數(shù)據(jù)。的參數(shù)數(shù)據(jù)。Server.Transfer方法則可以傳遞超過(guò)方法則可以傳遞超過(guò)2KB的參數(shù)信息。的參數(shù)信息。1613.3 網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞(續(xù))網(wǎng)頁(yè)的切換與數(shù)據(jù)傳遞(續(xù))u網(wǎng)頁(yè)間傳遞數(shù)據(jù)的方法常用有:網(wǎng)頁(yè)間傳遞數(shù)據(jù)的方法常用有: 使用使用QueryString傳遞數(shù)據(jù)傳遞數(shù)據(jù),例例13-3 利用利用Se

20、ssion對(duì)象傳遞或共享數(shù)據(jù)對(duì)象傳遞或共享數(shù)據(jù) ,13-4 利用利用PreviousPage屬性獲取數(shù)據(jù)屬性獲取數(shù)據(jù) ,13-517使用使用QueryString傳遞數(shù)據(jù)傳遞數(shù)據(jù) 在切換到另一個(gè)網(wǎng)頁(yè)時(shí)直接在網(wǎng)頁(yè)的在切換到另一個(gè)網(wǎng)頁(yè)時(shí)直接在網(wǎng)頁(yè)的ULR后加傳遞的參數(shù),后加傳遞的參數(shù),第一個(gè)參數(shù)前用第一個(gè)參數(shù)前用“?”和網(wǎng)頁(yè)名分隔,有多個(gè)參數(shù)時(shí),各參數(shù)和網(wǎng)頁(yè)名分隔,有多個(gè)參數(shù)時(shí),各參數(shù)之間用之間用“&”分隔,每個(gè)參數(shù)的形式為分隔,每個(gè)參數(shù)的形式為“變量名變量名=值值”。 而而在另一個(gè)網(wǎng)頁(yè)中使用在另一個(gè)網(wǎng)頁(yè)中使用 Request.QueryStringstringName 接收傳遞的參數(shù)。接

21、收傳遞的參數(shù)。 如果傳遞的參數(shù)中包含漢字、如果傳遞的參數(shù)中包含漢字、?、& 等特殊符號(hào),則需要在等特殊符號(hào),則需要在傳遞時(shí)進(jìn)行傳遞時(shí)進(jìn)行Url編碼編碼,例如:,例如: Server.Transfer(string.Format( test.aspx?name=0&pwd=1, Server.UrlEncode(TextBoxName.Text), Server.UrlEncode(TextBoxPwd.Text);18使用使用QueryString傳遞數(shù)據(jù)傳遞數(shù)據(jù)接收傳遞的參數(shù)時(shí),再進(jìn)行接收傳遞的參數(shù)時(shí),再進(jìn)行Url解碼,例如:解碼,例如:protected void Page

22、_Load(object sender, System.EventArgs e) Response.Write(姓名:姓名: + Server.UrlDecode(Request.QueryStringname); string str=; Response.Write(str.PadRight(5, u3000) + 密碼:密碼: + Server.UrlDecode(Request.QueryStringpwd) + ); Response.Write(您好,歡迎您登錄本網(wǎng)站!您好,歡迎您登錄本網(wǎng)站!); 19利用利用Session對(duì)象傳遞或共享數(shù)據(jù)對(duì)象傳遞或共享數(shù)據(jù) u 由于每個(gè)用戶都可

23、以有自己的由于每個(gè)用戶都可以有自己的Session,而創(chuàng)建的,而創(chuàng)建的Session對(duì)象所擁有的,并不局限于某一個(gè)網(wǎng)頁(yè),所以可以使用對(duì)象所擁有的,并不局限于某一個(gè)網(wǎng)頁(yè),所以可以使用Session對(duì)象傳遞數(shù)據(jù)。對(duì)象傳遞數(shù)據(jù)。u注意:使用注意:使用Session會(huì)占用服務(wù)器的內(nèi)存資源,并且所有會(huì)占用服務(wù)器的內(nèi)存資源,并且所有信息將一直存儲(chǔ)在內(nèi)存中直到信息將一直存儲(chǔ)在內(nèi)存中直到Session過(guò)期。所以與直接過(guò)期。所以與直接向下頁(yè)傳遞信息相比,使用向下頁(yè)傳遞信息相比,使用Session傳值時(shí)系統(tǒng)開(kāi)銷較大。傳值時(shí)系統(tǒng)開(kāi)銷較大。20利用利用PreviousPage屬性獲取數(shù)據(jù)屬性獲取數(shù)據(jù) u位于同一個(gè)應(yīng)用

24、程序中的兩個(gè)位于同一個(gè)應(yīng)用程序中的兩個(gè)ASP.NET網(wǎng)頁(yè),其中一個(gè)網(wǎng)頁(yè)網(wǎng)頁(yè),其中一個(gè)網(wǎng)頁(yè)可以使用頁(yè)面的可以使用頁(yè)面的PreviousPage屬性來(lái)獲取另一個(gè)網(wǎng)頁(yè)中的公屬性來(lái)獲取另一個(gè)網(wǎng)頁(yè)中的公共屬性或是控件值。共屬性或是控件值。 在使用前必須在本網(wǎng)頁(yè)的源代碼中添加代碼在使用前必須在本網(wǎng)頁(yè)的源代碼中添加代碼: 意思是指出意思是指出本網(wǎng)頁(yè)的前一個(gè)網(wǎng)頁(yè)是哪個(gè)網(wǎng)頁(yè)本網(wǎng)頁(yè)的前一個(gè)網(wǎng)頁(yè)是哪個(gè)網(wǎng)頁(yè)。21利用利用PreviousPage屬性獲取數(shù)據(jù)(續(xù))屬性獲取數(shù)據(jù)(續(xù))【例【例13-5】利用】利用PreviousPage屬性獲取前一網(wǎng)頁(yè)的公共屬性。屬性獲取前一網(wǎng)頁(yè)的公共屬性。 (1) 在在login.asp

25、x.cs的的login類中添加屬性。類中添加屬性。public string Username get return TextBoxName.Text; (2) 修改修改ButtonLogin的的Click事件代碼如下:事件代碼如下:protected void ButtonLogin_Click(object sender, EventArgs e) Server.Transfer(test.aspx);22利用利用PreviousPage屬性獲取數(shù)據(jù)(續(xù))屬性獲取數(shù)據(jù)(續(xù)) (3) 切換到切換到test.aspx的【源】視圖,在第的【源】視圖,在第2行添加:行添加: (4) 修改修改tes

26、t.aspx的的Page_load代碼如下:代碼如下:protected void Page_Load(object sender, EventArgs e) Response.Write(姓名:姓名: + (string)PreviousPage.Username);u也可以使用也可以使用PreviousPage.FindControl獲取前一個(gè)網(wǎng)頁(yè)中的獲取前一個(gè)網(wǎng)頁(yè)中的控件值。例如在控件值。例如在test.aspx頁(yè)面中添加一個(gè)頁(yè)面中添加一個(gè)Label1控件,顯示控件,顯示login.aspx頁(yè)面中的頁(yè)面中的TextBoxName控件的值,則只需要修改控件的值,則只需要修改test.asp

27、x的的Page_load中的代碼為如下代碼:中的代碼為如下代碼:23利用利用PreviousPage屬性獲取數(shù)據(jù)(續(xù))屬性獲取數(shù)據(jù)(續(xù))if (Page.PreviousPage != null) TextBox SourceTextBox = (TextBox)Page.PreviousPage.FindControl(TextBoxName ); if (SourceTextBox != null) Label1.Text = SourceTextBox.Text; 24protected void ButtonLogin_Click(object sender, EventArgs e)

28、 /例例13-3 /Server.Transfer(string.Format(test.aspx?name=0&pwd=1,Server.UrlEncode(TextBoxName.Text), Server.UrlEncode(TextBoxPwd.Text); /例例13-4 /* Sessionname = TextBoxName.Text; Sessionpwd = TextBoxPwd.Text; Response.Redirect(test.aspx); */ /例例13-5 / Server.Transfer(test.aspx); string name = Text

29、BoxName.Text; string pwd = TextBoxPwd.Text; if (name.IndexOf() -1 | name.IndexOf( ) -1 | name.IndexOf() -1 | pwd.IndexOf() -1 | pwd.IndexOf( ) -1 | pwd.IndexOf() -1) LabelState.Text = 用戶名或密碼包含有非法字符!用戶名或密碼包含有非法字符!; return; 25 /數(shù)據(jù)庫(kù)連接,實(shí)現(xiàn)用戶身份認(rèn)證數(shù)據(jù)庫(kù)連接,實(shí)現(xiàn)用戶身份認(rèn)證 SqlConnection conn = new SqlConnection (Syste

30、m.Configuration.ConfigurationManager.ConnectionStringswebdevelopConnectionString.ConnectionString); SqlCommand command = new SqlCommand(SelectUser, conn); command.CommandType = CommandType.StoredProcedure; SqlParameter UserName = command.Parameters.Add(name, SqlDbType.NVarChar, 30); UserName.Value =

31、 TextBoxName.Text; SqlParameter UserPwd = command.Parameters.Add(pwd, SqlDbType.VarChar, 20); UserPwd.Value = TextBoxPwd.Text; conn.Open(); try SqlDataReader dr = command.ExecuteReader(); 26 if (dr.Read() = true) SessionuserName = name; LabelState.Text = 用戶用戶 + name + 登錄成功。登錄成功。; Server.Transfer(ind

32、ex.aspx); else SessionuserName = ; LabelState.Text = 登錄失敗,無(wú)此用戶名或密碼不正確!登錄失敗,無(wú)此用戶名或密碼不正確!; dr.Close(); catch (Exception err) LabelState.Text = 系統(tǒng)錯(cuò)誤:系統(tǒng)錯(cuò)誤: + err.Message; conn.Close(); 27 public string Username get return TextBoxName.Text; public string Userpwd get return TextBoxPwd.Text; protected void

33、 ButtonRegister_Click(object sender, EventArgs e) Server.Transfer(register.aspx); /注意,網(wǎng)站內(nèi)須添加注意,網(wǎng)站內(nèi)須添加Web窗體窗體register.aspx用于用戶注冊(cè)。用于用戶注冊(cè)。 28protected void Page_Load(object sender, EventArgs e) /例例13-3 /* Response.Write(姓名:姓名: + Request.QueryStringServer.UrlDecode(name); string str=; /str.PadRight(5,u3

34、000)的功能為在的功能為在str的右邊填充全角空格使其長(zhǎng)度為的右邊填充全角空格使其長(zhǎng)度為5 Response.Write(str.PadRight(5, u3000) + 密碼:密碼: + Request.QueryStringpwd + ); Response.Write(您好,歡迎您登錄本網(wǎng)站!您好,歡迎您登錄本網(wǎng)站!); */ /例例13-4 /* /+.PadRight(3,u3000)的含義是添加的含義是添加3個(gè)全角空格個(gè)全角空格 Response.Write(姓名:姓名: + Sessionname.ToString() + .PadRight(3, u3000); Respon

35、se.Write(密碼:密碼: + Sessionpwd.ToString()+ ); Response.Write(您好,歡迎您登錄本網(wǎng)站!您好,歡迎您登錄本網(wǎng)站!); */29/例例13-5 /* Response.Write(姓名:姓名: + (string)PreviousPage.Username + .PadRight(3, u3000); Response.Write(密碼:密碼: + (string)PreviousPage.Userpwd + ); Response.Write(您好,歡迎您登錄本網(wǎng)站!您好,歡迎您登錄本網(wǎng)站!); */ /讀取前一網(wǎng)頁(yè)控件的值讀取前一網(wǎng)頁(yè)控件

36、的值 /* if (Page.PreviousPage != null) TextBox SourceTextBox = (TextBox)Page.PreviousPage.FindControl(TextBoxName); if (SourceTextBox != null) Label1.Text = SourceTextBox.Text; */3013.4 在在Web.Config中保存配置中保存配置u為了提高擴(kuò)展性和靈活性,為了提高擴(kuò)展性和靈活性,ASP.NET專門設(shè)置一個(gè)專門設(shè)置一個(gè)Web.Config文件來(lái)保存配置信息。文件來(lái)保存配置信息。uWeb.Config不一定要放在不一定

37、要放在Web應(yīng)用程序的根目錄下。同一個(gè)應(yīng)用程序的根目錄下。同一個(gè)Web應(yīng)用程序下的所有子目錄都可以擁有自己的應(yīng)用程序下的所有子目錄都可以擁有自己的Web.Config文件。此時(shí)文件。此時(shí)IIS會(huì)先繼承根目錄下的配置設(shè)置,如果碰到相會(huì)先繼承根目錄下的配置設(shè)置,如果碰到相同的配置標(biāo)記,則現(xiàn)行目錄下的同的配置標(biāo)記,則現(xiàn)行目錄下的Web.Config配置將覆蓋根配置將覆蓋根目錄下同名的配置設(shè)置。目錄下同名的配置設(shè)置。uWeb.Config中包含許多配置節(jié),這些節(jié)有些是通用的,另中包含許多配置節(jié),這些節(jié)有些是通用的,另外也允許開(kāi)發(fā)者自定義所需要的節(jié),并加上特定的節(jié)標(biāo)記。外也允許開(kāi)發(fā)者自定義所需要的節(jié),并

38、加上特定的節(jié)標(biāo)記。 31protected void ButtonOk_Click(object sender, EventArgs e) /新用戶注冊(cè)代碼新用戶注冊(cè)代碼 SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStringswebdevelopConnectionString.ConnectionString); SqlCommand command = new SqlCommand(CheckUser, conn); command.CommandType = CommandType.StoredP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論