ASPNET程序设计 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计
系部:_______________________ 专业:_______________________ 班级:_______________________ 学号:_______________________ 姓名:_______________________
淮安信息职业技术学院
实验目录
实验一入门 (1)
实验二类与接口 (4)
实验三数据库简单操作 (7)
实验四服务器控件的使用(一) (10)
实验五服务器控件的使用(二) (12)
实验六GridView控件 (16)
实验七DataList控件 (19)
实验八用户控件 (25)
实验九母版页与CSS样式 (27)
实验十内部对象编程 (30)
实验十一网页中的图形编程 (33)
实验十二XML编程 (36)
实验十三Web服务 (39)
实验十四身份验证方式 (43)
实验十五安全性相关控件 (45)
实验一 入门
实验日期:______年______月______日成绩:_____________
一、实验目的
1.熟悉Visual 2005环境
2.了解编程特点
3.掌握文件结构
4.理解应用程序的概念,掌握建立应用程序的步骤
二、实验内容
1.熟悉Visual 2005环境
浏览Microsoft Visual Studio 2005 ()环境,用“文件|新建|网站”菜单,打开新建网站对话框,设置开发语言(Visual
C#)及网站文件所放目录(如C:\\ex1),建立 网站。

2.添加登录页面(Login.aspx)
用“网站|添加新项”菜单,在中添加一个名为Login.aspx的Web窗体页面,界面包含用户名、密码、提交和信息显示四个部分,并将此页面设为起始页。

设计界面如下:
用if语句判断用户名、密码的正确性,并用标签显示判断信息。

(用户名、密码暂取user1、pwd1)。

在中浏览Login.aspx 页面,并查看地址栏的URL,记录动态端口号。

3.添加欢迎页面(Welcome.aspx)
用“网站|添加新项”菜单,在中添加一个名为Welcome.aspx的Web窗体页面,其中有一个文本框让访客输入自己的姓名,还有一个按钮用于提交表单,再加上一个标签显示问候信息,运行界面显示如下:
4.连接两个页面
在Login.aspx页面登录成功后定位到Welcome.aspx页面。

使用的方法是:Response.Redirect(“Welcome.aspx”);
5.以其它机器作为客户端,将本机作为服务器端,浏览页面
步骤如下:
(1)、在IIS中设置网站属性,将本机IP地址由全部未分配改为固定值。

(2)、将网站项目文件夹(ex1)放在C:\Inetpub\wwwroot下,并在IIS
中创建该网站项目的虚拟目录。

(3)、在客户端的浏览器中输入http:// IP固定值 / ex1 / Login.aspx,
浏览Login.aspx页面。

实验二类与接口
实验日期:______年______月______日成绩:_____________ 一、实验目的
1.理解类与接口的关系
2.掌握类与接口的定义与引用
3.初步了解两种常用数据库的连接与访问
4.理解命名空间在数据库访问中的作用
二、实验内容
1.分别用MS Access和SQL Server 2005(或SQL Server 2005 Express)建立存储用户登录信息的数据库Login,其中有数据表UserLogin,表
中包含两个字段UserName和UserPassword,并向数据表中插入两条记
录,以备后续登录测试使用。

2.定义一个接口Ilogin,并在接口中声明一个login方法,实现根据提供的连接串、用户名和密码,检查用户登录是否成功,成功时返回true,否则返回false。

参考代码:
public interface Ilogin
{
bool login(string strConnection, string strUserName, string strUserPassword);
}
3.新建两个类AccessLogin和SQLLogin,分别实现用Access和SQL Server 2005(或SQL Server 2005 Express)两种不同的数据库实现接口中的登
录方法(login方法)。

参考代码(以访问Access数据库为例):
public class AccessLogin : Ilogin
{
public bool login(string strConnection, string strUserName, string strUserPassword) {
OleDbConnection conn = new OleDbConnection(strConnection);
OleDbCommand cmd = new OleDbCommand("select * from Userlogin where
UserName=@UserName and UserPassword=@UserPassword", conn); cmd.Parameters.Add("@UserName", OleDbType.VarChar, 50);
cmd.Parameters.Add("@UserPassword", OleDbType.VarChar, 50);
cmd.Parameters["@UserName"].Value = strUserName;
cmd.Parameters["@UserPassword"].Value = strUserPassword;
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
bool blogin;
blogin = dr.Read();
conn.Close();
return blogin;
}
}
4.建立一个测试接口与类的Web窗体,在其中添加两个文本框(输入用户名和密码)和两个按钮(接口测试Access和SQL Server),在按钮单击事
件中编写测试代码,并输出测试结果。

参考代码(以测试Access数据库接口为例):
protected void Button1_Click(object sender, EventArgs e)
{
Ilogin lg = new AccessLogin();
string s = "provider=microsoft.jet.oledb.4.0;data source=" +
Server.MapPath("app_data\\login.mdb");
if (lg.login(s, txtUserName.Text, txtUserPassword.Text))
Response.Write("Access登录成功!");
else
Response.Write("Access登录失败!");
}
5.在程序开始部分,添加System.Data.OleDb和System.Data.SqlClient 命名空间的引用,并在实现接口的两个类中删除对这两个命名空间的指定,测试程序是否正常运行。

实验三数据库简单操作实验日期:______年______月______日成绩:_____________ 一、实验目的
1.理解Sql Server数据库的连接串含义
2.掌握用Sql Server数据库数据作下拉列表数据源的设置方法
3.掌握带参数的数据查询的方法
4.掌握各种数据对象的使用方法
5.掌握用表格显示数据的编程方法
二、实验内容
本次实验提供数据库,请到ftp://210.29.226.59下载
1.用下拉列表控件DropDownList绑定数据表中的字段。

方法一:
(1)、建立对Sql Server数据库Northwind的数据连接,获取连接字符串。

(2)、导入命名空间: using System.Data.SqlClient;
(3)、编写Page_Load事件方法,实现在首次装载页面(!IsPostBack)时,
设置下拉列表控件DropDownList的数据源为数据库中的Products
(产品)表,数据文本列为“ProductName(产品名称)”,数据值列
为“ProductID(产品ID)”。

提示语句如下:
DropDownList1.DataSource = dr; (注:dr为数据阅读器对象实例)
DropDownList1.DataTextField ="字段名"; //绑定下拉列表的文本
DropDownList1.DataValueField ="字段名"; //绑定下拉列表的值
DropDownList1.DataBind();
方法二:
(1)、建立对Sql Server数据库Northwind的数据连接,获取数据源对象。

(2)、添加下拉列表控件,利用DropDownList控件的便捷任务面板中的选
择数据源,通过数据源配置向导选择数据源和为DropDownList的文
本或值选择数据字段。

2.使用数据阅读器SqlDataReader对象读取查询到的数据,并在标签控
件Label中用表格显示查询数据。

参考代码(数据表的读取):
String strtable = "<table border=1><tr><td>产品编号</td><td>产品名称</td><td>
产品类别</td></tr>"; //显示表头
while (dr.Read())
{
strtable += "<tr>";
strtable += "<td>" + dr.GetValue(0).ToString() + "</td>";
strtable += "<td>" + dr.GetValue(1).ToString() + "</td>";
strtable += "<td>" + dr.GetValue(2).ToString() + "</td>";
strtable += "</tr>";
}
strtable += "</table>";
注:dr为数据阅读器对象实例。

用dr.GetValue(i).ToString()方法获取指定序号处的列值。

3.使用数据适配置器SqlDataAdapter对象和数据集DataSet对象读取查
询到的数据,并在标签控件Label中用表格显示查询数据。

参考代码(数据表的读取):
string strtable = "<table border=1><tr>";
for (int i = 0; i < ds.Tables[0].Columns.Count; i++) //读取各列列名,作为表头 {
strtable += "<td>" + ds.Tables[0].Columns[i].ColumnName + "</td>";
}
strtable += "</td>";;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)//读取各单元格数据
{
strtable += "<tr>";
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
strtable += "<td>" + ds.Tables[0].Rows[i][j].ToString() + "</td>";
}
strtable += "</tr>";
}
strtable += "</table>";
注:ds为数据集对象实例。

4.(选做) 在上题中表格用奇偶行不同色相间显示查询到的数据。

实验四服务器控件的使用(一)实验日期:______年______月______日成绩:_____________ 一、实验目的
1.熟练使用Label控件和Button控件
2.掌握文本框TextBox控件各种模式的使用
3.掌握RadioButton、RadioButtonList、DropDownList控件单选功能的使用
4.掌握CheckBox、CheckBoxList、ListBox控件的复选功能的使用二、实验内容
1.用CheckBox控件实现如下界面:
提示:用if语句判断复选框CheckBox是否被选中。

2.用CheckBoxList控件实现在下列五种水果中选择你喜欢的水果。

(用Label控件显示选择结果)
提示:复选时用字符串实例的TrimEnd()方法去掉最后一个顿号。

3.分别用RadioButtonList控件、 DropDownList控件实现在下列五种水果中选择你最喜欢的水果。

(用Label控件显示选择结果) (1)、RadioButtonList控件实现单选的界面如下:
(2)、DropDownList控件实现单选的界面如下:
提示:设置DropDownList控件的AutoPostBack属性为true
4.(选做) 综合应用各种控件实现如下填写个人信息的界面:
实验五服务器控件的使用(二)实验日期:______年______月______日成绩:_____________ 一、实验目的
1.掌握BulletedList项列表控件的使用
2.掌握MultiView多视图控件的使用
3.掌握FileUpload文件上传控件的使用
4.掌握各种验证控件的使用,并了解验证控件的验证优先顺序
二、实验内容
1.使用BulletedList项列表控件创建“普通用户”和“会员用户”的项列表,当点击项列表中相应的选项时能实现不同界面的切换。

提示:
①、BulletedList控件的属性BulletStyle用来设置项目样式,属性
DisplayMode用来设置项目文本的显示模式(Text、HyperLink、
LinkButton)。

②、BulletedList控件的属性DisplayMode设置为LinkButton显示模
式时有单击事件,参考语句如下:
BulletedList1.Items[e.Index].Text; //显示项目的文本
或者:BulletedList1.Items[e.Index].Value; //显示项目的返回值
2.用多视图在“普通用户”和“会员用户”视图中选择一个视图。

步骤:
(1)、建立一个多视图MultiView1,并在其中添加两个视图View1和View2
分别用来显示“普通用户”和“会员用户”的界面。

提示:MultiView控件通过属性ActiveViewIndex选择一个View控件。

(2)、在“普通用户”视图中实现用户注册的功能,用户输入信息时要求进
行如下输入验证:
·用必填验证控件RequiredFieldValidator,验证“用户名字段不能为空”。

·用比较验证控件CompareValidator,验证“用户两次输入的密码必须一致”。

·用必填验证控件RequiredFieldValidator和正则验证控件RegularExpressionValidator,共同验证电子邮件地址。

①、电子邮件地址未输入时应显示“E-mail地址不能为空”。

②、电子邮件地址格式不正确时应显示“请输入正确的E-mail格
式”。

(电子邮件地址应符合一定的格式,如其中含有1个“@”
和1到2个“.”字符,并在“@”之前、“@”与“.”之间、“.”
与“.”之间有非空字符串。


运行程序时总结验证控件的验证优先顺序。

(3)、在“会员用户”视图中使用文件上传控件FileUpload实现图片的上传
操作,要求图片的格式只能是jpg格式,并且上传成功后能显示出相应的图片。

提示:使用System.IO.Path.GetExtension()方法获得文件扩展名。

设计界面如下:
运行过程如下:
①、启始页面:
②、单击“普通用户”链接按钮后,出现的页面如下:
③、单击“会员用户”链接按钮后,出现的页面如下:
实验六 GridView控件
实验日期:______年______月______日成绩:_____________
一、实验目的
1. 了解GridView控件的作用
2. 掌握SQL数据源的建立方法
3. 掌握GridView控件绑定列、各种模板列样式的定义
4. 掌握用GridView控件更新和删除数据表记录
5. 掌握GridView控件的排序、分页样式的设置
二、实验内容
本次实验提供数据库,请到ftp://210.29.226.59下载
1. 建立对Sql Server数据库Forum的数据连接,其中有数据表UserInfor,
表中有如下字段:
UserID(用户ID)、UserName(用户名)、UserPassword(密码)、
UserEmail(邮件地址)、UserSex(性别)、UserFace(头像)、
UserMarried(婚否)
注:UserID字段为主键,类型为自动编号。

2. 建立一个数据源用来访问数据库Forum中的用户表UserInfor。

3. 添加GridView控件,右击GridView控件(或者:利用GridView控件的便
捷任务面板中的自动套用格式),选择“自动套用格式|彩色型”格式。

4. 利用GridView控件的便捷任务面板中的编辑列,从已有绑定列中去除
绑定列UserID和绑定列UserPassword (或者:去除所有自动生成的绑
定列字段,用GridView控件的便捷任务面板中的添加新列来添加需要
的字段) 。

5.将已有的列改为中文列名:用户名、邮件地址、性别、头像、婚否。

6.将邮件地址UserEmail字段用HyperLink列显示,并能实现邮件发送。

提示:邮件发送的URL字符串格式为“mailto: 邮件地址”。

7.将性别UserSex字段用模板列表示,显示为男或女。

(1为男、0为女) 提示:自定义绑定,代码表达式如下:
Eval("UserSex").ToString()=="1"?"男":"女"
8.将头像UserFace字段用图象列表示,显示相应的头像图片。

(在网站项目中建立一个文件夹,用来存放多种表情头像图片)
9.添加编辑(更新、取消)命令按钮,实现对记录的编辑功能,且编辑时用户名列不允许编辑。

10. 添加删除命令按钮,实现对记录的删除功能。

11. 利用GridView控件的便捷任务面板中的启用分页,实现对记录的分页
功能,并设置GridView控件的属性PageSize,实现每页输出4条记录。

12. 利用GridView控件的便捷任务面板中的启用排序,实现对记录的排序
功能,并利用编辑列,设置相应字段的SortExpression值,实现只对
用户名UserName列进行排序。

运行结果如下:
实验七 DataList控件
实验日期:______年______月______日成绩:_____________
一、实验目的
1.掌握DataList控件中模板列的定义方法
2.掌握用DataList控件显示数据库的各种习惯用法
3.学会使用DataList控件编辑数据库数据的方法
二、实验内容
本次实验提供数据库,请到ftp://210.29.226.59下载
1.DataList控件显示数据表中的数据
(1)、用服务器资源管理器建立数据连接以访问数据库Forum,其中有数
据表UserInfor,表中有如下字段:
UserID(用户ID)、UserName(用户名)、UserPassword(密码)、UserEmail(邮件地址)、UserSex(性别)、UserFace(头像)、
UserMarried(婚否)
注:UserID字段为主键,类型为自动编号。

(2)、从数据连接的表中拖放表UserInfor到web窗体上,删除自动产生的
GridView控件,保留自动产生的数据源SqlDataSource1控件。

(3)、利用DataList控件的便捷任务面板中的选择数据源,从下拉列表框
中选择SqlDataSource1数据源。

2.定义数据列表控件中项模板列
利用DataList控件的便捷任务面板中的编辑模板,显示ItemTemplate
项模板, 使其显示UserName和UserSex列。

控件类型要求如下:
3.DataList控件实现“选择”、“关闭”操作
(1)、在普通项模板ItemTemplate中添加Button或LinkButton控件,设置
其属性CommandName为“Select”、属性Text为“选择”,实现选
择操作。

(2)、建立选择项模板SelectedItemTemplate。

(可以复制普通项模板的
内容,在此基础上略加修改,以示区别)
(3)、在选择项模板SelectedItemTemplate中添加Button或LinkButton控
件,设置其属性CommandName为“Close”、属性Text为“关闭”,
实现关闭操作。

(4)、在DataList控件的属性窗口中选择ItemCommand事件,编写事件代
码参考如下:
if (mandName == "Select")
{ DataList1.SelectedIndex = e.Item.ItemIndex;
DataList1.DataBind();
}
else if (mandName == "Close")
{ DataList1.SelectedIndex=-1;
DataList1.DataBind();
}
4.DataList控件实现“删除”操作
(1)、在模板中添加Button或LinkButton控件,设置其属性CommandName
为“Delete”、属性Text为“删除”,属性CommandArgument为
<%# Eval(“主键列名”)%> ,实现删除操作。

(2)、在DataList控件的属性窗口中选择DeleteCommand事件,编写事件
代码参考如下:
SqlDataSource1.DeleteParameters["UserId"].DefaultValue =
mandArgument.ToString(); SqlDataSource1.Delete();
DataList1.EditItemIndex = -1;
DataList1.DataBind();
5.DataList控件实现“编辑”、“取消”、“更新”操作
编辑:
(1)、在模板中添加Button或LinkButton控件,设置其属性CommandName
为“Edit”、属性Text为“编辑”,实现编辑操作。

(2)、在DataList控件的属性窗口中选择EditCommand事件,编写事件代
码参考如下:
DataList1.EditItemIndex = e.Item.ItemIndex;
DataList1.DataBind();
取消:
(1)、在模板中添加Button或LinkButton控件,设置其属性CommandName
为“Cancel”、属性Text为“取消”,实现取消操作。

(2)、在DataList控件的属性窗口中选择CancelCommand事件,编写事件
代码参考如下:
DataList1.EditItemIndex = -1;
DataList1.DataBind();
更新:
(1)、在编辑项模板EditItemTemplate中添加Button或LinkButton控件,
设置其属性CommandName为“Update”、属性Text为“更新”,属
性CommandArgument为<%# Eval(“主键列名”)%>,实现更新操作。

(2)、编辑项模板EditItemTemplate中显示用户名UserName、邮件地址
UserEmail、性别UserSex和头像UserFace列。

控件类型要求如下:
(3)、在DataList控件的属性窗口中选择UpdateCommand事件,编写事件
代码参考如下:(以下代码只是针对表编辑UserName列演示实现的功能)
SqlDataSource1.UpdateParameters["UserId"].DefaultValue =
mandArgument.ToString();
SqlDataSource1.UpdateParameters["UserName"].DefaultValue =
(e.Item.FindControl("tbUserName") as TextBox).Text;
……………………
SqlDataSource1.Update();
DataList1.EditItemIndex = -1;
DataList1.DataBind();
6.DataList控件实现“插入”操作
(1)、在编辑项模板EditItemTemplate中添加Button或LinkButton控件,
设置其属性CommandName为“Insert”、属性Text为“插入”,实现
插入操作。

(2)、在DataList控件的属性窗口中选择ItemCommand事件,编写事件代
码参考如下:(以下代码只是针对表插入UserName列演示实现的功能)
SqlDataSource1.InsertParameters["UserName"].DefaultValue =
(e.Item.FindControl("tbUserName") as TextBox).Text;
……………………
SqlDataSource1.Insert();
DataList1.EditItemIndex = -1;
DataList1.DataBind();
7.DataList控件的页眉模板、页脚模板、分隔符模板的设计。

运行结果如下:
①、运行初始界面如下:
②、点击“选择”按钮时出现的界面如下:
③、点击“编辑”按钮时出现的界面如下:
(选做) DataList控件实现“插入”操作时,点击“插入”按钮则跳转到另一个单独的页面进行插入操作,提交成功后数据插入到数据表中,并且页面返回到初始运行界面。

插入界面如下:
实验八用户控件
实验日期:______年______月______日成绩:_____________ 一、实验目的
1.掌握用户控件的定义
2.掌握在用户控件中添加属性、事件和方法
3.掌握用户控件的引用
二、实验内容
1.定义一个具有登录功能的用户控件文件UserLogin.ascx,其中包含两个文本框(输入用户名和密码)以及两个按钮(清空和提交)。

界面如下
所示:
2.编写内部事件,实现单击“清空”按钮,清除文本框中的文本。

3.定义用户控件属性UserName与UserPassword,实现对文本框的读写。

参考代码(以属性UserName为例):
public string UserName
{
get { return TextBox1.Text; }
set { TextBox1.Text = value; }
}
4.定义事件Submit。

参考代码:
public delegate void EventDelegate(); //声明事件所需的委托EventDelegate
public event EventDelegate Submit; //由委托声明公共事件变量Submit
5.单击“提交”按钮,引发事件。

参考代码:
protected void Button2_Click(object sender, EventArgs e)
{
if (Submit != null)
Submit();//检查Submit事件在容器中是否被指派了与委托类型相同委托实例方法 }
6.在普通Web窗体页面(.aspx)中,放入自定义用户控件UserLogin1以及
标签Label1,在点击“提交”按钮时,判断用户控件属性UserName与
UserPassword是否为"User1"与"pwd1",并将判断结果显示在标签上。

事件过程定义与属性引用参考代码如下:
(1)、在page_load事件中,为用户控件指定事件处理
UserLogin1.Submit += new UserLogin.EventDelegate(UserLogin1_Submit);
(2)、定义事件处理程序(UserLogin1_Submit)
void UserLogin1_Submit()
{
…………;
}
提示:用户控件名.属性名(如:erName)来引用用户控件中的属性。

7.(选做) 在用户控件上加入验证控件,并且从数据库中查询登录信息。

实验九母版页与CSS样式实验日期:______年______月______日成绩:_____________
一、实验目的
1.掌握母版页的定义与引用方法
2.理解主题的意义,掌握主题的定义与引用方法
3.理解CSS样式的类型
4.掌握CSS不同种类样式的定义与引用方法
5.掌握外观文件的定义与引用方法
二、实验内容
1.定义与引用母版页
(1)、用Table标记定义一个如下所示的母版页:
(2)、用上述母版页建立两个内容页,每个内容页上放上一个控件或一张
图片以用来识别。

(3)、母版页左边的“内容页1”、“内容页2”均为超链接,设置其属性
NavigateUrl以分别指向相应的两个内容页。

(4)、浏览内容页1,测试链接。

2.定义主题
在网站根目录下建立三个主题文件夹分别为Default、Blue、Red。

(右击网站根目录,选择“添加 文件夹|主题”重命名主题文件夹名)
3.CSS样式表文件的建立与引用
(1)、在三个主题文件夹(Default、Blue、Red)下分别建立CSS样式表文
件(右击主题文件夹,选择“添加新项|样式表”),样式表文件取
名使用系统默认值。

(2)、在Default主题样式中按定义并分别引用如下三种基本CSS样式:
(3)、浏览页面,观察页面样式。

(此时没有样式效果)
(4)、在页面源中的第一行 <%@ page %>中添加Theme=“Default”设置
单个页面的主题(或者:在属性窗口设置页面Document属性Theme为相应的主题),浏览该页面,测试样式效果。

也可以在配置文件Web.Config中设置所有页面的主题,如下所示:
<configuration>
<system.web>
<pages theme="default" />
</system.web>
</configuration>
(5)、在Blue和Red主题中添加样式文件,参照Default样式修改颜色属性,
修改主题引用,观察页面样式。

4.外观(皮肤)文件的建立与引用
(1)、在三个主题文件夹下分别建立外观文件(右击主题文件夹,选择“添
加新项|外观文件”),外观文件取名使用系统默认值。

(2)、在新建的三个外观文件中分别设置Button按钮的前景色(ForeColor)
为黑色(Black)、蓝色(Blue)和红色(Red),方法如下:
①、在普通页面设计中设置Button按钮如下样式:
<asp:Button ID="Button1" runat="server" ForeColor="Red" Text="Button" />
②、删除个性的属性设置,保留共性的属性设置,变成如下样式:
<asp:Button runat="server" ForeColor="Red" />
将此复制到外观文件中。

(3)、在页面中加入Button控件,设置页面的主题样式后,浏览页面,观
察页面样式。

5.(选做) 使用DropDownList控件动态选择一个主题样式。

提示:在Page_PreInit事件中设置页面主题。

实验十 内部对象编程实验日期:______年______月______日成绩:_____________
一、实验目的
1.熟悉和了解中的各种内部对象
2.掌握Request、Response、Server对象的属性、方法、事件
3.掌握ViewState的定义与引用
4.掌握Session的定义与引用
5.掌握Application的定义与引用
二、实验内容
1.编写累计表单上按钮单击次数程序
建立一个Counter.aspx页面,产生一个ViewState对象,在页面首次装载时设置为“0”,单击按钮实现加1的功能,用标签显示当前
ViewState的状态值。

参考语句如下:
ViewState["count"] = int.Parse(ViewState["count"].ToString()) + 1; //实现加1功能
2.编写一个简易聊天室程序
(1)、建立一个Login.aspx页面,用于登录。

界面如下:
(选做) 用户登录时,当用户输入昵称后,程序判断是否重名,重名
时则要求重新输入,不重名则保存昵称到数据库中,进入聊天室。

(2)、聊天室,建立三个页面,Show.aspx页面显示聊天记录,Send.aspx
页面实现发送聊天信息功能,Chat.htm页面是调用显示聊天记录页面(Show.aspx)和发送聊天信息页面(Send.aspx)的框架页面。

运行界面如下:
●创建Send.aspx页面,实现发言功能,使用Application对象存储聊
天信息,并使用Session对象存储用户昵称信息。

参考语句如下:
Application.Lock();
Application["show"] = Session["name"] + "说:" + TextBox1.Text + "<br>"
+ Application["show"];
Application.UnLock();
●创建Show.aspx页面,显示聊天记录,参考语句如下:
Label1.Text = Application["show"].ToString();
●创建Chat.htm页面,使用框架把Show.aspx和Send.aspx放在同一个
页面中。

参考源代码如下:
<frameset rows="*,150">
<frame name="top"src="show.aspx">
<frame name="bottom"src="send.aspx">
</frameset>
(3)、为了能让聊天记录及时进行更新,我们在显示聊天记录的Show.aspx
页面的源代码<head runat="server"></head>中加入刷新代码:
<meta http-equiv="refresh"content="3" />
思考:
退出IE浏览器,再次进入,聊天记录还存在吗?如何清除聊天记录?
(4)、测试页面。

为了测试对聊,打开两个IE浏览器窗口,这时两个窗口代
表了两个用户,对聊成功。

实验十一网页中的图形编程实验日期:______年______月______日成绩:_____________ 一、实验目的
1.了解绘图在Web开发中的意义
2.掌握利用GDI+的绘图方法
3.理解向客户端输出图形或图象的方法
4.利用GDI+绘图向客户端输出有用图形或图象
二、实验内容
1.使用GDI+对象,绘制如下图所示的四位数随机验证码图片。

实现:
●添加产生图象的页面ValidateCode.aspx。

●产生验证码文本。

编写ValidCode方法,产生随机验证码字符串,验
证中的字符是数字或字母。

参考代码如下:
private string ValidCode(int len)
{
string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
int n = s.Length;
string strValidCode = "";
Random rnd = new Random(lisecond);
for (int i = 0; i < len; i++)
strValidCode += s.Substring(rnd.Next(n), 1);
return strValidCode;
}
绘制图象。

编写ValidCodeImage方法,产生验证字符串图象。

在设置绘图区域后,绘制背景白色、背景噪音线、字符串、前景噪音点、
边框线等部分。

参考代码如下:
private void ValidCodeImage(string ValidCode)
{
Bitmap bitmap = new Bitmap((int)Math.Ceiling((ValidCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(bitmap);
Pen pen = new Pen(Color.Silver);
Random rnd = new Random(lisecond);
//绘制图片的背景白色
g.Clear(Color.White);
//绘制图片的背景噪音线
for (int i = 0; i < 25; i++)
{
int x1 = rnd.Next(bitmap.Width);
int x2 = rnd.Next(bitmap.Width);
int y1 = rnd.Next(bitmap.Height);
int y2 = rnd.Next(bitmap.Height);
g.DrawLine(pen, x1, y1, x2, y2);
}
Font font = new Font("Arial", 12, FontStyle.Bold | FontStyle.Italic);
Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
System.Drawing.Drawing2D.LinearGradientBrush brush = new
System.Drawing.Drawing2D.LinearGradientBrush(rect,Color.Blue,
Color.DarkRed, 1.2f, true);
//绘制验证码字符串
g.DrawString(ValidCode, font, brush, 2, 2);
//绘制图片的前景噪音点
for (int i = 0; i < 100; i++)
{
int x = rnd.Next(bitmap.Width);
int y = rnd.Next(bitmap.Height);
bitmap.SetPixel(x, y, Color.FromArgb(rnd.Next()));
}
//绘制图片的边框线
g.DrawRectangle(pen, 0, 0, bitmap.Width - 1, bitmap.Height - 1);
bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
g.Dispose();
}
●完成图象的绘制与发送。

在页面的Page_Load事件方法中,调用上一
步的绘图方法ValidCodeImage,完成绘制图象并将图象数据发送到请
求端的任务。

●接受并显示图象。

添加显示图象的页面Default.aspx,在该页面中添
加图象标签<img>,设置src属性,向绘制图象的页面发出请求,接
受响应的图象数据。

●测试页面。

浏览页面Default.aspx,页面上就会显示随机产生的四个
字符验证码,刷新页面,验证码图象也被刷新,符合验证的要求。

实验十二 XML编程
实验日期:______年______月______日成绩:_____________ 一、实验目的
1.使用DataSet对象读写XML文件中的数据
2.使用XSL设置XML的显示样式
3.使用XmlDocument类操作XML对象
二、实验内容
本次实验提供数据库,请到ftp://210.29.226.59下载
1.将本实验提供的Northwind数据库的Shippers表中的数据用DataSet 对象写入“货主表.xml”文件中。

写入XML文件的语法格式如下:
第一种方法:只写入数据部分
DataSet对象实例.WriteXml(XML 文件物理路径);
第二种方法:将XML文件结构和数据都写入文件中
DataSet对象实例.WriteXml(XML 文件物理路径,XmlWriteMode.WriteSchema);
2.将题1的“货主表.xml”文件读入到DataSet数据集对象实例中,并显示在GridView控件中。

读取XML文件的语法格式如下:
第一种方法:只读入数据部分
DataSet对象实例.ReadXml(XML 文件物理路径);
第二种方法:将XML文件结构和数据都读入文件中
DataSet对象实例. ReadXml(XML 文件物理路径,XmlReadMode.ReadSchema);
3.参照下列代码,建立显示Northwind数据库中的Shippers表的样式文件“货主表.xsl”。

(网站|添加新项|XSLT文件)
<table cellspacing="3"cellpadding="8">
<tr bgcolor="#DDDDDD">
<TH>表的列名标题</TH>
<TH>表的列名标题</TH>
<TH>表的列名标题</TH>
</tr>
<xsl:for-each select="数据集/数据表">
<tr bgcolor="#EEEEEE">
<td width="15%"valign="top">
<xsl:value-of select="数据表的数据列字段"/>
</td>
<td width="35%"valign="top">
<xsl:value-of select="数据表的数据列字段"/>
</td>
<td width="50%"valign="top">
<B>
<xsl:value-of select="数据表的数据列字段"/>
</B>
</td>
</tr>
</xsl:for-each>
</table>
4.在页面上添加Xml控件,使用题3的XSL格式转换文件“货主表.xsl”
设置题1的XML文件“货主表.xml”的显示样式如下图:。

相关文档
最新文档