《C#Web应用开发专题培训课件.ppt》由会员分享,可在线阅读,更多相关《C#Web应用开发专题培训课件.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Windows应用编程应用编程 主讲:陈克力主讲:陈克力11.1一个简单的一个简单的ASP.NET应用程序应用程序11.2关于关于ASP.NET11.3ASP.NET控件和对象控件和对象11.4ASP.NET数据库应用程序数据库应用程序11.5Web服务的应用服务的应用本本章章内内容容1Windows应用编程应用编程 主讲:陈克力主讲:陈克力11.1一个简单的ASP.NET应用程序11.1.1创建创建ASP.NET应用程序应用程序【例【例11.1】基于基于C#的简单的简单ASP.NET应用程序。应用程序。这是一个简单的这是一个简单的ASP.NET应用程序,其作用是将文本框中输入的字符串应用程序
2、,其作用是将文本框中输入的字符串显示在网页上。显示在网页上。创建步骤如下:创建步骤如下:(1)启动)启动VS2008,选择,选择“文件文件”|“新建新建”|“项目项目”,打开,打开“新建项新建项目目”对话框。在此对话框的对话框。在此对话框的“项目类型项目类型”框中选择框中选择“VisualC#”项,在项,在“模板模板”框中选择框中选择“ASP.NETWeb应用程序应用程序”,表示要创建基于,表示要创建基于C#的的ASP.NET应用程序,将程序名设置为应用程序,将程序名设置为MyFirstWebApp:V2R6T12Windows应用编程应用编程 主讲:陈克力主讲:陈克力(2)单击【确定】按钮,
3、然后在生成界面的)单击【确定】按钮,然后在生成界面的“解决方案资源管理器解决方案资源管理器”中右击中右击“Default.aspx”节点,在弹出的菜单中选择节点,在弹出的菜单中选择“视图设计器视图设计器”,以可打开页面的视图设计器。以可打开页面的视图设计器。(3)将工具箱中的三个控件拖到设计界面中,这三个控件分别是)将工具箱中的三个控件拖到设计界面中,这三个控件分别是Label、TextBox和和Button控件,并适当设置它们的属性和位置:控件,并适当设置它们的属性和位置:11.1一个简单的ASP.NET应用程序11.1.1创建创建ASP.NET应用程序应用程序V2R6T13Windows应
4、用编程应用编程 主讲:陈克力主讲:陈克力(4)在设计界面中,双击【访问控件】按钮,即可进入到该按钮的事)在设计界面中,双击【访问控件】按钮,即可进入到该按钮的事件处理函数中,实际上是在件处理函数中,实际上是在Default.aspx.cs文件中生成了文件中生成了Button1_Click函数。在该函数中,添加下列代码:函数。在该函数中,添加下列代码:Label1.Text=TextBox1.Text;Label1.Font.Size=20;(5)运行程序)运行程序MyFirstWebApp。方法是:按【。方法是:按【Ctrl】+【F5】按钮直接】按钮直接运行,也可以单击快捷菜单栏上的运行,也可
5、以单击快捷菜单栏上的“启动调试启动调试”按钮(相当于按【按钮(相当于按【F5】)】)。在打开的。在打开的IE浏览器界面的文本框中输入一些字符串,然后单击【访问浏览器界面的文本框中输入一些字符串,然后单击【访问控件】按钮:控件】按钮:至此,一个简单的至此,一个简单的ASP.NET应用程序开发完毕。应用程序开发完毕。11.1一个简单的ASP.NET应用程序11.1.1创建创建ASP.NET应用程序应用程序V2R6T14Windows应用编程应用编程 主讲:陈克力主讲:陈克力读者可能注意到,虽然做的是网页程序,但没有感觉到要编写任何的网读者可能注意到,虽然做的是网页程序,但没有感觉到要编写任何的网页
6、代码(编写页代码(编写HTML代码是一件烦杂的事情),而只是进行控件的拖放、代码是一件烦杂的事情),而只是进行控件的拖放、控件属性的设置以及控件属性的设置以及C#代码的编写,这与开发代码的编写,这与开发C#窗体应用程序几乎没窗体应用程序几乎没有什么区别。这是有什么区别。这是ASP.NET对对Web应用程序设计的极大改进。应用程序设计的极大改进。造成这种改进主要是由于造成这种改进主要是由于.NET平台采用了平台采用了界面和代码分开的策略界面和代码分开的策略,即,即网网页文件放在页文件放在Default.aspx文件文件中,而中,而C#代码则放在代码则放在Default.aspx.cs文件文件中。
7、中。11.1一个简单的ASP.NET应用程序11.1.1创建创建ASP.NET应用程序应用程序Default.aspx.cs文件文件是与页面元素相关联的是与页面元素相关联的C#文件,它就是文件,它就是ASP.NET代代码隐藏的地方。对码隐藏的地方。对ASP.NET应用程序来说,这里就是程序员的应用程序来说,这里就是程序员的“用武之用武之地地”。前面指出的。前面指出的“界面元素和代码分开界面元素和代码分开”,指的就是将程序文件分为,指的就是将程序文件分为ASP.NET应用中的应用中的.aspx文件和文件和.aspx.cs文件。文件。V2R6T15Windows应用编程应用编程 主讲:陈克力主讲:
8、陈克力ASP(ActiveServerPages)是)是Microsfot公司于公司于1996年年11月推出的面向月推出的面向WEB应用程序开发的技术框架,但它不是程序设计语言,也不是开发工应用程序开发的技术框架,但它不是程序设计语言,也不是开发工具。简单地,具。简单地,ASP主要是由主要是由“”挂起来的代码嵌入到挂起来的代码嵌入到HTML中的一种技术。这些代码是在服务器端执行,执行时无需编译,可以用中的一种技术。这些代码是在服务器端执行,执行时无需编译,可以用任何的文本编辑器编写(如记事本等)。此外,任何的文本编辑器编写(如记事本等)。此外,ASP可以通过内置的组可以通过内置的组件实现更强大
9、的功能,如使用件实现更强大的功能,如使用ADO可以轻松地访问数据库。可以轻松地访问数据库。ASP.NET则是从则是从HTML发展到发展到ASP,然后伴随着微软的,然后伴随着微软的.NET技术的推出技术的推出而出现的。而出现的。ASP.NET不是不是ASP的简单升级,而是全新一代的动态网页开的简单升级,而是全新一代的动态网页开发系统,用于在一台发系统,用于在一台Web服务器上建立强大的应用程序。它是服务器上建立强大的应用程序。它是Microsoft.NET技术的一个组成部分,是技术的一个组成部分,是ASP和和.NET技术结合的产物。在技术结合的产物。在MicrosoftVisualStudio2
10、005/2008中,利用中,利用.NET提供的控件,可快速开提供的控件,可快速开发发ASP.NET应用程序,大大简化了编码的过程。应用程序,大大简化了编码的过程。11.2 关于ASP.NET11.1.1创建创建ASP.NET应用程序应用程序V2R6T16Windows应用编程应用编程 主讲:陈克力主讲:陈克力相对相对ASP而言,而言,ASP.NET具有的主要优势包括:具有的主要优势包括:u实现界面和代码的分开实现界面和代码的分开u编译执行编译执行u使用强类型(使用强类型(strongly-type)编程语言)编程语言11.2 关于ASP.NET11.1.1创建创建ASP.NET应用程序应用程序
11、ASP.NET主要包括两种编程模型:主要包括两种编程模型:WebForm:提供了建立功能强大、外观丰富的基于表单:提供了建立功能强大、外观丰富的基于表单(Form)的可的可编程编程Web页面,这几乎与页面,这几乎与VB.NET、C#.NET的窗体开发界面是一样的的窗体开发界面是一样的WebService:通过对:通过对HTTP、XML、SOAP、WSDL等等Internet标准标准的支持提供在异构网络环境下获取远程服务、连接远程设备、交互远的支持提供在异构网络环境下获取远程服务、连接远程设备、交互远程应用的编程界面程应用的编程界面V2R6T17Windows应用编程应用编程 主讲:陈克力主讲:
12、陈克力ASP.NET提供了大量的提供了大量的控件,当用户将控件拖控件,当用户将控件拖到到Web窗体设计界面时,窗体设计界面时,会自动生成相应的会自动生成相应的HTML代码和代码和C#代码。代码。这为这为Web应用程序的可应用程序的可视化界面设计提供极大视化界面设计提供极大的便利,避免了使用的便利,避免了使用HTML标记语言编写大标记语言编写大量代码的麻烦。量代码的麻烦。ASP.NET控件主要分为控件主要分为两大类:两大类:Web窗体控件窗体控件和和HTML控件:控件:11.3 ASP.NET控件和对象11.3.1ASP.NET控件控件V2R6T18Windows应用编程应用编程 主讲:陈克力主
13、讲:陈克力对于对于Web窗体控件和窗体控件和HTML控件,需要注意以下几点:控件,需要注意以下几点:(1)Web窗体控件是服务器端控件,即它们在服务器端运行,因此不要窗体控件是服务器端控件,即它们在服务器端运行,因此不要求客户端浏览器支持求客户端浏览器支持Web窗体控件(如不要求安装窗体控件(如不要求安装.NETFramework等),等),我们在浏览器看到的只是这些控件运行后输出的结果;我们在浏览器看到的只是这些控件运行后输出的结果;HTML控件是客控件是客户端控件,只有浏览器支持这些控件,它们才能运行。户端控件,只有浏览器支持这些控件,它们才能运行。(2)Web窗体控件是以窗体控件是以C#
14、为脚本语言,其功能十分强大。为脚本语言,其功能十分强大。HTML控件控件则以则以javascript等为脚本语言,其功能较前者弱得多。等为脚本语言,其功能较前者弱得多。(3)在设计界面上,当双击)在设计界面上,当双击Web窗体控件时,会自动在窗体控件时,会自动在.cs文件中形成文件中形成并打开控件的并打开控件的Click事件处理函数(事件处理函数(C#语言),以供用户编写代码;当双语言),以供用户编写代码;当双击击HTML控件时,则会自动在控件时,则会自动在.aspx文件中形成并打开控件的文件中形成并打开控件的onclick事事件处理函数(件处理函数(javascript语言)。语言)。11.
15、3 ASP.NET控件和对象11.3.1ASP.NET控件控件V2R6T19Windows应用编程应用编程 主讲:陈克力主讲:陈克力【例【例11.2】使用使用ASP.NET控件实现页面之间传递数据的控件实现页面之间传递数据的ASP.NET应用程应用程序。序。本例介绍如何使用本例介绍如何使用QueryString来解决这个问题。来解决这个问题。11.3 ASP.NET控件和对象11.3.1ASP.NET控件控件(1)在)在VS2008中创建一个中创建一个ASP.NET应用程序应用程序testWebControlApp。(2)添加一个)添加一个Web页,方法是:选择页,方法是:选择“项目项目”|“
16、添加新项添加新项”,在打开的,在打开的“添加新项添加新项”对话框中选择对话框中选择“Web窗体窗体”。(3)在视图设计器中打开文件)在视图设计器中打开文件Default.aspx的设计界面,然后在其设计界的设计界面,然后在其设计界面中分别添加面中分别添加2个个Label控件、控件、2个个TextBox控件和控件和1个个Button控件,并在属性控件,并在属性编辑器中修改编辑器中修改Label和和Button控件的控件的Text属性、将属性、将TextBox控件的控件的ID分别改分别改为为username和和password,还将后一个,还将后一个TextBox控件的控件的TextModel属性
17、值设置属性值设置为为password,以将框作为密码输入框。,以将框作为密码输入框。设计界面如下:设计界面如下:V2R6T110Windows应用编程应用编程 主讲:陈克力主讲:陈克力(4)在视图设计器中打开文件)在视图设计器中打开文件WebForm1.aspx的设计界面,在设计界的设计界面,在设计界面中直接添加面中直接添加2个个Label控件即可,它们的控件即可,它们的ID自动被设置为自动被设置为Label1和和Label2。(5)在文件)在文件Default.aspx的设计界面中,双击【登录】按钮,在产生的的设计界面中,双击【登录】按钮,在产生的Click事件处理函数中添加如下代码:事件处
18、理函数中添加如下代码:stringdataStr;dataStr=WebForm1.aspx?username=+username.Text+&password=+password.Text;Response.Redirect(dataStr);(6)在文件)在文件WebForm1.aspx的设计界面中,双击任意一个空白处,将的设计界面中,双击任意一个空白处,将自动产生自动产生Page_Load函数,在该函数中添加下列代码:函数,在该函数中添加下列代码:Label1.Text=Request.QueryStringusername;Label2.Text=Request.QueryString
19、password;11.3 ASP.NET控件和对象11.3.1ASP.NET控件控件V2R6T111Windows应用编程应用编程 主讲:陈克力主讲:陈克力(7)运运行行文文件件Default.aspx,在在文文本本框框中中输输入入用用户户名名和和密密码码。然然后后单单击击【登登录录】按按钮钮,结结果果输输入入的的用用户户名名和和密密码码被被传传送送到到文文件件WebForm1.aspx对应的页面中。对应的页面中。11.3 ASP.NET控件和对象11.3.1ASP.NET控件控件从运行结果可以看到,从运行结果可以看到,Default.aspx页面中的数据已经成功传送页面中的数据已经成功传送
20、到到WebForm1.aspx页面中。页面中。V2R6T112Windows应用编程应用编程 主讲:陈克力主讲:陈克力1.Response对象对象系统根据用户的请求(打开一个页面)自动创建一个系统根据用户的请求(打开一个页面)自动创建一个Response对象。该对象。该对象用于向客户端传递或输出相关的信息,这些信息包括用户定义的内对象用于向客户端传递或输出相关的信息,这些信息包括用户定义的内容、内容的报头、服务器的状态等。其常用的属性和方法包括:容、内容的报头、服务器的状态等。其常用的属性和方法包括:Buffer属性属性该属性用于设置服务器端是否开启缓存功能。如果其值为该属性用于设置服务器端是
21、否开启缓存功能。如果其值为true,表示开,表示开启启IIS缓存功能,这时服务器会处理整个页面后再发给客户端,这样用户缓存功能,这时服务器会处理整个页面后再发给客户端,这样用户就可以看到连续的界面,当然这是以牺牲服务器的内存资源为代价;如就可以看到连续的界面,当然这是以牺牲服务器的内存资源为代价;如果其值为果其值为false,表示不开启,表示不开启IIS缓存功能,这时服务器会一边处理一边发缓存功能,这时服务器会一边处理一边发送,这时用户看到的界面可能是间断的。送,这时用户看到的界面可能是间断的。Expires属性属性该属性的值表示页面的有效期,单位为分钟。如果用户请求其有效期满该属性的值表示页
22、面的有效期,单位为分钟。如果用户请求其有效期满之前的相同页面,将直接读取显示缓冲区中的内容,这个有效期间过后,之前的相同页面,将直接读取显示缓冲区中的内容,这个有效期间过后,页面将不再保留缓冲区中的内容。页面将不再保留缓冲区中的内容。11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象V2R6T113Windows应用编程应用编程 主讲:陈克力主讲:陈克力Write()方法方法该方法用于向客户端输出指定的内容,由客户端解释执行。例如:该方法用于向客户端输出指定的内容,由客户端解释执行。例如:Response.Write(今天的日期时间:今天的日期时间:);Response
23、.Write(DateTime.Now.ToString();Redirect()方法方法该方法用于重定向到指定的该方法用于重定向到指定的URL。例如:。例如:Response.Redirect(http:/ ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象V2R6T114Windows应用编程应用编程 主讲:陈克力主讲:陈克力AddHeade()方法方法增加增加HTTP头的集合中的元素。如:头的集合中的元素。如:Response.AddHeader(headname,headvalue);Clear()方法方法该方法用于清空该方法用于清空IIS缓冲区中的内容(缓冲区中的内容(
24、Response.Buffer为为True时)。时)。Flush()方法方法执行该方法时,将执行该方法时,将IIS缓冲区中的内容发给客户端(缓冲区中的内容发给客户端(Response.Buffer为为True时),对客户端来说,其作用就是刷新网页。时),对客户端来说,其作用就是刷新网页。End()方法方法当程序执行到该方法时,将终止脚本的处理,起到终止程序继续运行的当程序执行到该方法时,将终止脚本的处理,起到终止程序继续运行的作用。作用。11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象V2R6T115Windows应用编程应用编程 主讲:陈克力主讲:陈克力2.Requ
25、est对象对象当客户端浏览器向当客户端浏览器向ASP.NET服务器端程序发出请求时,服务器端程序将服务器端程序发出请求时,服务器端程序将针对请求的答应信息封装在针对请求的答应信息封装在Request对象中,客户端通过调用对象中,客户端通过调用Request对对象的属性和方法可以获取想要的信息。象的属性和方法可以获取想要的信息。Request对象的常用属性和方法包括:对象的常用属性和方法包括:ApplicationPath属性属性返回服务器上返回服务器上ASP.NET应用程序的虚拟根路径(应用程序的虚拟根路径(string类型)。类型)。Path属性属性返回当前请求页的虚拟路径(包含请求页对应的
26、返回当前请求页的虚拟路径(包含请求页对应的.aspx文件名)。文件名)。PhysicalPath属性属性返回与请求的返回与请求的URL相对应的物理文件系统的绝对路径(包含请求页对应相对应的物理文件系统的绝对路径(包含请求页对应的的.aspx文件名)。文件名)。11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象V2R6T116Windows应用编程应用编程 主讲:陈克力主讲:陈克力PhysicalApplicationPath属性属性返回当前正在执行的服务器应用程序的根目录在物理文件系统中的绝对返回当前正在执行的服务器应用程序的根目录在物理文件系统中的绝对路径。路径。Co
27、ntentLength属性属性返回所获得内容的长度。返回所获得内容的长度。ContentEncoding属性属性返回所获得内容的编码方式。返回所获得内容的编码方式。ContentType属性属性返回所获得内容的类型。返回所获得内容的类型。Headers属性属性返回返回HTTP头的集合。头的集合。11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象V2R6T117Windows应用编程应用编程 主讲:陈克力主讲:陈克力HttpMethod属性属性返回客户端使用的返回客户端使用的HTTP数据传输的方法,如数据传输的方法,如GET、POST或或HEAD。Url属性属性返回当前请
28、求的返回当前请求的URL。Browser属性属性这个属性返回浏览器的有关信息,这些信息十分丰富,包括浏览器是否这个属性返回浏览器的有关信息,这些信息十分丰富,包括浏览器是否支持支持ActiveX控件、是否为测试版、浏览器的名称和版本号等信息。控件、是否为测试版、浏览器的名称和版本号等信息。UserHostAddress属性属性返回客户机的返回客户机的IP地址(地址(string类型)。利用这个属性可以拒绝恶意用户的类型)。利用这个属性可以拒绝恶意用户的访问。访问。UserHostName属性属性返回客户机的返回客户机的DNS名称。名称。11.3 ASP.NET控件和对象11.3.2ASP.NE
29、常用对象常用对象V2R6T118Windows应用编程应用编程 主讲:陈克力主讲:陈克力QueryString属性属性该属性返回该属性返回URL所带的附加信息项的集合,集合的类型为所带的附加信息项的集合,集合的类型为System.Collections.Specialized.NameValueCollection,通常用于实现页,通常用于实现页面之间的数据传递。面之间的数据传递。11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象例如,下面语句重定向到例如,下面语句重定向到WebForm1.aspx页面,同时传递三个信息项:页面,同时传递三个信息项:Response.R
30、edirect(WebForm1.aspx?s1=str1&s2=str2&s3=str3);在在WebForm1.aspx页面中可以用下面三条语句分别获取这三项信息:页面中可以用下面三条语句分别获取这三项信息:strings;s=Request.QueryStrings1;/结果结果s=str1s=Request.QueryStrings2;/结果结果s=str2s=Request.QueryStrings3;/结果结果s=str3当然,也可以通过下标访问集合中的元素来获取信息项:当然,也可以通过下标访问集合中的元素来获取信息项:strings;System.Collections.Spec
31、ialized.NameValueCollectionstrs=Request.QueryString;for(inti=0;istrs.Count;i+)s=strsi;显然,显然,QueryString属性通常与属性通常与Response对象的对象的Redirect属性搭配使用。实际上,属性搭配使用。实际上,例例11.2中的程序中的程序testWebControlApp已经已经使用过这两个属性来实现页面之间的数使用过这两个属性来实现页面之间的数据传递。据传递。V2R6T119Windows应用编程应用编程 主讲:陈克力主讲:陈克力ServerVariables属性属性该属性是一个该属性是一
32、个string类型对象的集合,它保存了服务器的有关信息。类型对象的集合,它保存了服务器的有关信息。11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象例如,我们可以用下列语句输出该属性包含的所有有关服务器的信息:例如,我们可以用下列语句输出该属性包含的所有有关服务器的信息:for(inti=0;iRequest.ServerVariables.Count;i+)Response.Write(i+1).ToString()+:+Request.ServerVariablesi.ToString()+);一般情况下是通过对象的名称来访问一般情况下是通过对象的名称来访问Serv
33、erVariables属性中有关服务器的属性中有关服务器的信息。常用的包括:信息。常用的包括:Request.ServerVariablesLocal_Addr/返回服务器的返回服务器的IPRequest.ServerVariablesPath_Info/返回被请求页的虚拟路径返回被请求页的虚拟路径Request.ServerVariablesPath_Translated/返回被请求页的绝对路径返回被请求页的绝对路径Request.ServerVariablesServer_Name/返回服务器的名称返回服务器的名称Request.ServerVariablesServer_Port/返回服
34、务器所使用的端口返回服务器所使用的端口Request.ServerVariablesUrl/返回请求页的返回请求页的URL地址地址V2R6T120Windows应用编程应用编程 主讲:陈克力主讲:陈克力3.Server对象对象Server对象封装了服务器的相关信息,利用该对象提供的方法可以获取对象封装了服务器的相关信息,利用该对象提供的方法可以获取这些信息。这些信息。MapPath()方法方法返回与返回与Web服务器上的指定虚拟路径相对应的物理文件路径,如服务器上的指定虚拟路径相对应的物理文件路径,如Server.MapPath(“WebForm1.aspx”)返回返回“D:VS2008第第1
35、1章章test1test1WebForm1.aspx”。Redirect()方法方法该方法与该方法与Response对象的对象的Redirect()方法具有相同调用方法。例如,下面方法具有相同调用方法。例如,下面两个语句的作用是一样的:两个语句的作用是一样的:Response.Redirect(WebForm1.aspx?s1=str1&s2=str2);Server.Transfer(WebForm1.aspx?s1=str1&s2=str2);11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象V2R6T121Windows应用编程应用编程 主讲:陈克力主讲:陈克力H
36、tmlEncode()方法方法对给定的字符串进行对给定的字符串进行HTML编码,使得浏览器不再按照编码,使得浏览器不再按照HTML语法对其语法对其进行解释,而是原样输出。例如,对于下面的两条语句:进行解释,而是原样输出。例如,对于下面的两条语句:Response.Write(中国人中国人+);Response.Write(Server.HtmlEncode(中国人中国人)+);11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象因此,如果想将因此,如果想将HTML语法中的代码在浏览器输出,就需要使用语法中的代码在浏览器输出,就需要使用HtmlEncode()方法。方法。V
37、2R6T122Windows应用编程应用编程 主讲:陈克力主讲:陈克力4.Session对象和对象和Application对象对象11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象共同点共同点:都是用于在服务器端保存数据和对象,它们都是:都是用于在服务器端保存数据和对象,它们都是object类型的类型的数组,使用方法相同,可以通过对象名或下标引用其中的对象。通常用数组,使用方法相同,可以通过对象名或下标引用其中的对象。通常用于保存用户信息、实现网站访问计数等功能。于保存用户信息、实现网站访问计数等功能。不同点不同点:它们的作用范围不同,:它们的作用范围不同,Sessio
38、n对象的作用范围是一次会话期内对象的作用范围是一次会话期内(简单来说,就是从打开网页到关闭网页这个时间段),只为一个用户(简单来说,就是从打开网页到关闭网页这个时间段),只为一个用户所拥有;所拥有;Application对象的作用范围则是对象的作用范围则是Web服务器的一次生存期(从服务器的一次生存期(从启动服务器到关闭服务器这个时间段),可为所有用户共享。启动服务器到关闭服务器这个时间段),可为所有用户共享。V2R6T123Windows应用编程应用编程 主讲:陈克力主讲:陈克力4.Session对象和对象和Application对象对象11.3 ASP.NET控件和对象11.3.2ASP.
39、NE常用对象常用对象例如,下面两条语句的作用是将字符串例如,下面两条语句的作用是将字符串“Petter”和和“C_sharp”依次依次添加到添加到Session对象中:对象中:Sessionusername=Petter;Sessionuserpass=C_sharp;这两个字符串在这两个字符串在Session中的中的“名称名称”分别为分别为username和和userpass,通过,通过它们的名称即可访问相应的数据和对象。例如,对于下列语句:它们的名称即可访问相应的数据和对象。例如,对于下列语句:Response.Write(Sessionusername+);Response.Write(
40、Sessionuserpass+);执行后将输出:执行后将输出:PetterC_sharp当然,也可以通过下标来访问当然,也可以通过下标来访问Session对象中的数据:对象中的数据:Response.Write(Session0+);Response.Write(Session1+);实际上,我们也可以用下列语句输出实际上,我们也可以用下列语句输出Session对象中的所有数据:对象中的所有数据:for(inti=0;iSession.Count;i+)Response.Write(Sessioni+);V2R6T124Windows应用编程应用编程 主讲:陈克力主讲:陈克力4.Sessio
41、n对象和对象和Application对象对象11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象【例例11.3】Session对象和对象和Application对象的区别。对象的区别。创建创建ASP.NET应用程序应用程序testSessionApplication,然后在,然后在Web窗体的窗体的Load事件处理函数中添加有关实现计数功能的测试代码,结果如下:事件处理函数中添加有关实现计数功能的测试代码,结果如下:protectedvoidPage_Load(objectsender,EventArgse)if(SessionsCount=null)SessionsCo
42、unt=1;/初始化初始化elseSessionsCount=(int)SessionsCount+1;/自加自加1Response.Write(Session对象的计数结果:对象的计数结果:+SessionsCount+);if(ApplicationaCount=null)ApplicationaCount=1;/初始化初始化elseApplicationaCount=(int)ApplicationaCount+1;/自加自加1Response.Write(Application对象的计数结果:对象的计数结果:+ApplicationaCount+);V2R6T125Windows应用编
43、程应用编程 主讲:陈克力主讲:陈克力4.Session对象和对象和Application对象对象11.3 ASP.NET控件和对象11.3.2ASP.NE常用对象常用对象执行该程序,然后对网页刷新若干次,如刷新两次:执行该程序,然后对网页刷新若干次,如刷新两次:然后关闭该网页,再重新执行该程序,显示的计数结果然后关闭该网页,再重新执行该程序,显示的计数结果:在关闭网页后,在关闭网页后,Session对象中的数据不复存在,每次打开网页时都要从对象中的数据不复存在,每次打开网页时都要从头创建;而对头创建;而对Application对象来说,只要不关闭对象来说,只要不关闭Web服务器,其中的数服务器
44、,其中的数据一直被保存下来。据一直被保存下来。V2R6T126Windows应用编程应用编程 主讲:陈克力主讲:陈克力ASP.NET数据库应用程序和数据库应用程序和C#窗体数据库应用程序的开发在原理上是窗体数据库应用程序的开发在原理上是一样的,不同的是,前者使用一样的,不同的是,前者使用Web界面(网页),后者使用界面(网页),后者使用C#窗体界面。窗体界面。因此,如果是开发基于因此,如果是开发基于C#语言的语言的ASP.NET数据库应用程序,那么我们数据库应用程序,那么我们几乎可以直接利用第几乎可以直接利用第10章学过的内容来实现对数据库的操作。章学过的内容来实现对数据库的操作。11.4 A
45、SP.NET数据库应用程序11.3.2ASP.NE常用对象常用对象V2R6T127Windows应用编程应用编程 主讲:陈克力主讲:陈克力在在ASP.NET数据库应用程序中,也可以使用数据库应用程序中,也可以使用ADO.NET中中Connection对对象来连接数据库。例如,下面语句将建立一个连接到数据库象来连接数据库。例如,下面语句将建立一个连接到数据库MyDatabase的的Connection对象:对象:stringConnectionString=DataSource=mzq;InitialCatalog=MyDatabase;+PersistSecurityInfo=True;Use
46、rID=sa;Password=sql2008;SqlConnectionconn=newSqlConnection(ConnectionString);11.4 ASP.NET数据库应用程序11.4.1数据库的连接和数据浏览数据库的连接和数据浏览V2R6T128Windows应用编程应用编程 主讲:陈克力主讲:陈克力【例【例11.3】浏览指定数据表中的数据。浏览指定数据表中的数据。创建创建ASP.NET应用程序应用程序ConnectionDB,在,在Web窗体上添加一个窗体上添加一个GridView控件,并适当调整它的位置和大小;然后双击控件,并适当调整它的位置和大小;然后双击Web窗体,进
47、入窗体,进入窗体的窗体的Load事件处理函数,在此函数中编写实现数据库连接和数据浏览事件处理函数,在此函数中编写实现数据库连接和数据浏览功能的代码,结果如下:功能的代码,结果如下:11.4 ASP.NET数据库应用程序11.4.1数据库的连接和数据浏览数据库的连接和数据浏览protectedvoidPage_Load(objectsender,EventArgse)stringConnectionString=DataSource=mzq;InitialCatalog=MyDatabase;+PersistSecurityInfo=True;UserID=sa;Password=sql2008
48、;SqlConnectionconn=newSqlConnection(ConnectionString);DataSetdataset=newDataSet();/创建数据集创建数据集/创建数据提供者创建数据提供者SqlDataAdapterDataAdapter=newSqlDataAdapter(SELECT*FROMstudent,conn);/填充数据集填充数据集dataset,并为本次填充的数据起名,并为本次填充的数据起名“student_table”DataAdapter.Fill(dataset,student_table);GridView1.DataSource=datas
49、et;GridView1.DataMember=student_table;GridView1.DataBind();/必须绑定数据必须绑定数据V2R6T129Windows应用编程应用编程 主讲:陈克力主讲:陈克力执行该程序执行该程序:11.4 ASP.NET数据库应用程序11.4.1数据库的连接和数据浏览数据库的连接和数据浏览上述代码已经正确连接了数据库上述代码已经正确连接了数据库MyDatabase,并获取和显示表,并获取和显示表student中的数据。中的数据。V2R6T130Windows应用编程应用编程 主讲:陈克力主讲:陈克力Insert、Delete和和Update语句属于数据
50、操纵语句,在语句属于数据操纵语句,在ASP.NET程序中可程序中可利用利用ADO.NET中的中的Command对象来执行它们。对象来执行它们。【例【例11.4】SQL代码执行器。代码执行器。在本例中,创建一个在本例中,创建一个ASP.NET应用程序,它提供一个用于输入应用程序,它提供一个用于输入SQL代码代码的文本框,在该文本框中可以输入的文本框,在该文本框中可以输入Insert、Delete或或Update语句文本(一语句文本(一次只能执行一条语句),执行后将实时显示对应表中的当前数据。次只能执行一条语句),执行后将实时显示对应表中的当前数据。该程序的开发步骤如下:该程序的开发步骤如下:(1