课程名称 .NET程序设计 实验名称 实验七 ADO.NET管理数据库
一.实验目的:
1.掌握ASP.NET服务器验证控件的使用。
2.掌握ADO.NET对象的使用方法。
3.初步熟悉数据绑定控件GridView控件的使用方法。
二.实验内容:
本实验将通过创建一个的“C#学习网”,使同学们掌握ASP.NET服务器验证控件、ADO.NET对象的使用方法,并初步熟悉数据绑定控件GridView。该网站各页的效果图如图7-1、7-2、7-3、7-4、7-5、7-6、7-7、7-8所示。大体上的功能是:
(1)首次访问网站首页index.aspx页(图7-4)时,该页面判断是否“已登录”,若未登录,则自动跳转到login.aspx页(图7-1),若输入正确的用户名和密码,单击“登录”按钮,则跳转到index.aspx;若单击“注册”按钮,则跳转到Register.aspx(图7-2),若注册成功,就跳转到RegisterSuccess.aspx(图7-3)注册成功页面,单击该页上的“确定”按钮,就跳转到index.aspx页面。
(2)在index.aspx页面,单击“新闻管理”,跳转到news.aspx(图7-5)。在该页面单击“单击此处发布新闻”,跳转到发布新闻页面modifyNews.aspx(图7-6),输入完毕后,单击“确定”按钮,回到news.aspx页面;在该页面单击某条新闻记录的“编辑”按钮,跳转到修改页面modifyNews.aspx(图7-7),修改完毕后,单击“确定”按钮,回到news.aspx。
(3)在index.aspx页面,单击“新闻浏览”,跳转到allnews.aspx(图7-8)
在设计页面之前,首先根据效果图分析得到框架结构代码,并利用PhotoShop工具,剪切下需要的图片,并保存(本实验已提供了这些图片)。
图7-1 登录页面效果
图 7-2 注册页面效果
图7-3 登录成功页面效果
图7-4 网站首页效果
图7-5 新闻管理页面效果
图7-6 新闻发布页面效果
图 7-7 修改新闻页面效果
图7-8 新闻浏览页面效果
图7-9 新闻内容页面效果
1.创建数据库和数据库表
“C#学习网”中用到了两个表:userlogin表和news表。我们首先创建一个数据库,名为“C#StudyDB”,然后按照图7-10和7-11所示的表结构创建userlogin表和news表。
图7-10 userlogin表结构
图7-11 news表结构
2.创建登录页面
(1)启动Visual Studio 2008,新建一个名为学习网 动态网站的ASP.NET网站。并新建一个名为images的文件夹,通过添加现有项的方法将本实验提供的图片素材添加到网站的images文件中。(注:所有图片已放在本实验的附件中)
(2)在【解决资源管理器】窗格中右击选择【添加新项】命令或者选择【项目】|【添加新项】命令,打开【添加新项】对话框。选择“Web窗体“,并取名为“login.aspx”。按照图7-1所示的效果设计页面,将用于用户名输入的TextBox取名为“TextBoxUsername”,用于密码输入的TextBox取名为“TextBoxPassword”,“登录”按钮取名为“ButtonLogin”,“注册”按钮取名为“ButtonRegister”。
(3)编写“ButtonLogin”按钮的Click事件代码,如下:
protected void ButtonLogin_Click(object sender, EventArgs e)
{ string strName = TextBoxUsername.Text;
string strPwd = TextBoxPassword.Text;
string strConn ="Data Source=localhost;uid=sa;pwd=888888;DataBase=C#StudyDB";
SqlConnection conn = new SqlConnection(strConn);
string strSelect = "SELECT * FROM userlogin WHERE username =@username and userpwd =@password";
SqlCommand command = new SqlCommand(strSelect,conn);
command.Parameters.AddWithValue("@username",strName);
command.Parameters.AddWithValue("@password",strPwd);
conn.Open();
SqlDataReader dr = command.ExecuteReader();
if (dr.Read())
{
Session["userName"] = strName;
Server.Transfer("index.aspx");
}
else
{
Session["userName"] = "";
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('登录失败,无此用户名或密码不正确!');</script>");
}
conn.Close();
}
(4)编写ButtonRegister按钮的Click事件代码如下:
protected void ButtonRegister_Click(object sender, EventArgs e)
{
Server.Transfer("register.aspx");
}
3.创建注册页面
(1)在【解决资源管理器】窗格中右击选择【添加新项】命令或者选择【项目】|【添加新项】命令,打开【添加新项】对话框。选择“Web窗体“,并取名为“Register.aspx”。按照图7-2所示的效果设计页面,将用于用户名输入的TextBox取名为“TextBoxName”,用于密码输入的TextBox取名为“TextBoxPwd”,用于确认密码的TextBox取名为“TextBoxRePwd”,用于输入性别的是一个RadioButtonList控件RadioButtonList1。
(2)使用必须字段验证控件确保TextBoxName、TextBoxPwd和TextBoxRePwd不能为空,使用正则表达式验证控件确保TextBoxName和TextBoxPwd为“3到10个字母、数字”,使用比较验证控件确保TextBoxPwd和TextBoxRePwd必须一致。其核心代码如下:
<table style="width:438px; line-height:30px; height: 214px; margin-left:10px;">
<tr>
<td class="style1">
用户名:</td>
<td class="style2">
<asp:TextBox ID="TextBoxName" runat="server" Width="125px"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBoxName" Display="Dynamic" ErrorMessage="不能为空"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="TextBoxName" Display="Dynamic" ErrorMessage="要求3到16个数字、字母、_、-"
ValidationExpression="[a-zA-Z0-9_-]{3,16}">