网站程序设计报告

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









2011-6-1
一、开发过程
1)数据库设计
本网站程序才用的是SQL Server 2005数据库系统, 在该系统中新建立1个数据库名为db_Student。

创建用户信息表(tb_User)和成员信息表(people)。

下面是截图:
tb_User表
People表
创建工程截图:
2)配置Web.Config
由于Web.Config文件对于访问站点的用户来说是不可见的, 也是不可以访问的, 所以为了系统数据的安全操作, 可以再配置文件中(Web.Config)配置一些参数。

本里将在Web.Config
文件中配置数据库连接字符串。

代码如下
<appSettings>
<add key="ConnectionString"value="Server=.;Uid=sa;pwd=;database=db_Student;"/>
</appSettings>
3)公共类得编写
(1)为了加强代码的重用性和一卫户型, 在这里建立一
个公共类DB.cs, 它里面包含4个方法, 分别是GetCon方
法、sqlEx方法、reDt方法、reDr方法。

(2)G etCon()方法
该方法主要是用来连接数据库, 使用ConfigurationManager对象的AppSettings属性值获取配置节中连接数据库的字符串实例化SqlConnection对象, 并返回对象, 其代码如下:
Public SqlConnection GetCon()
{
return new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
}
(3)s qlEx方法
sqlEx方法主要使用SqlCommcand对象执行数据库操作, 包括一个string字符型参数, 是用来接受具体执行的SQL语句。

执行成功返回1;失败则返回0.代码如下
public int sqlEx(string cmdstr)
{
SqlConnection con = GetCon();
con.Open();
SqlCommand cmd = new SqlCommand(cmdstr, con);
try
{
cmd.ExecuteNonQuery();
return 1;
}
catch (Exception ee)
{
return 0;
}
finally
{
con.Dispose();
}
}
(4)r eDt方法
该方法通过SQL语句查询数据库中的数据, 并查询结果存储在Data 数据集中, 最终将该数据集中存储查询记过的数据返回, 详细代码如下:
public DataTable reDT(string cmdstr)
{
SqlConnection con = GetCon();
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmdstr,con);
DataSet ds = new DataSet();
da.Fill(ds);
return (ds.Tables[0]);
}
(5)r eDr(string str)方法
该方法将执行语句的结果存储在一个SqlDataReader对象中, 最后将
这个SqlDataReader对象返回到调用处理。

代码如下:
{
SqlConnection conn = GetCon();
conn.Open();
SqlCommand com = new SqlCommand(str,conn);
SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
二、模块设计说明
1)登录页实现过程
该页面实现了用户的登录功能, 是整个Web应用程序的起始页, 对于未注册的用户还提供了注册功能。

该页面运行结果如图所示:
(1)界面设计
在该页面添加3个TextBox控件、2个Button控件和一个Image 控件, 它们的ID属性分别为txtUserName、txtPwd、btnLogin、btnRegister.
(2)登录功能的实现
用户单击“登录”按钮, 将触发btnLogin_Click事件。

通过数据库验证输入的用户名和密码是否正确。

验证时待用DB类的reDr方法获取用户的信息。

验证成功, 则使用Session对象保存用户的登录信息, 然后跳转到Home.aspx个人信息界面;验证失败, 将给出登录失败的提示信息并刷新页面。

代码如下:
protected void btnLogin_Click(object sender, EventArgs e)
{
DB db = new DB();
string userName = this.txtUserName.Text.Trim();
string passWord = this.txtPwd.Text.Trim();
SqlDataReader dr=db.reDR("select * from tb_User where UserName='"+userName+"'and PassWord='"+passWord+"'");
dr.Read();
if (dr.HasRows)
{
Session["UserName"] = dr.GetValue(0);
Session["Role"] = dr.GetValue(3);
Response.Redirect("~/Home.aspx");
}
else {
Response.Write("<script>alert('登录失败!请返回查找原因
');location='Login.aspx'</script>");
}
dr.Close();
}
登录失败截图:
(3)注册新用户
单击“注册”按钮, 将跳转到Register.aspx页面进行注册。

代码如下:
protected void btnRegister_Click(object sender, EventArgs e)
{
Response.Redirect("~/Register.aspx");
}
运行后截图:
用户注册页面
2)注册页面实现过程
(1)界面设计
在该页中添加4个TextBox控件,2个Button控件、一个LinkButton控件、4个RequiredFieldValidator控件, 一个CompareValidator控件和一个RegularExpressionValidator控件。

它们的ID属性分别为txtUserName、txtPwd、txtRepwd、txtEmail、brnOK、btnBack、RequiredFieldValidator1.RequiredFieldValidator2.RequiredFieldValidator pareValidator1.RegularExpressionValidat or1.
(2)检测用户名是否存在
在注册新用户前, 提供了一个对新用户希望注册的用户名进行检查
的功能, 通过单击“检测用户名是否存在”按钮来实现这一功能, 此时触发了按钮的lnkbtnCheck_Click事件。

代码如下:
protected void lnkbtnCheck_Click(object sender, EventArgs e)
{
reValue = CheckName();
if (reValue == -1)
{
Response.Write("<script>alert('用户名存在! ');</script>");
this.txtUserName.Focus();
}
else if (reValue == 2)
{
Response.Write("<script>alert('恭喜您!该用户名尚未注册! ');</script>");
this.txtUserName.Focus();
}
}
在该事件中, 主要通过调用CheckName()方法来判断用户名是否存在, 将CheckName()方法返回值存在int型全局变量reValue中。

如果存在就返回-1;如果不存在则返回2.CheckName()代码如下:
public int CheckName()
{
DB db = new DB();
string str = "select * from tb_User where UserName='" + this.txtUserName.Text + "'";
try
{
DataTable dt = db.reDT(str);
if (dt.Rows[0][0].ToString() != "0")
{ return -1; }
else { return 2; }
}
catch
{ return 0; }
}
运行结果截图:
这是用户名已存在的情况
这是用户名可以用的情况。

(2)注册新用户
单击注册按钮可以完成注册功能。

在触发btnOK_Click事件中首先调用CheckName()方法检验用户名是否已存在。

存在的话就提示用户名已存在, 不存在就把信息添加到数据库里面。

代码如下:
protected void btnOK_Click(object sender, EventArgs e)
{
reValue = CheckName();
if (reValue == -1)
{
Response.Write("<script>alert('用户名存在! ');</script>");
}
else
{
DB db = new DB();
string UserName = this.txtUserName.Text;
string PassWord = this.txtPwd.Text.ToString();
string Email = this.txtEmail.Text;
string cmdstr = "insert into tb_User(UserName,PassWord,Email) values ('"+ UserName + "','" + PassWord + "','" + Email + "')";
try
{
reValue = db.sqlEx(cmdstr);
if (reValue == 1)
{
Response.Write("<script>alert('注册成功! ');</script>");
Clear();
}
else if (reValue == 0)
{
Response.Write("<script>alert('注册失败! ');</script>");
}
}
catch (Exception ee)
{
Response.Write("<script>alert('注册失败! ');</script>");
}
}
}
注册成功截图:
注册成功后把编辑框里面的信息清楚用Clear()方法, 代码如下: public void Clear()
{
this.txtUserName.Text = "";
this.txtPwd.Text = "";
this.txtRepwd.Text = "";
this.txtEmail.Text = "";
}
返回按钮就返回了, 代码如下:
protected void btnBack_Click(object sender, EventArgs e)
{
Response.Redirect("Login.aspx");
}
登录成功后截图:
三、实验总结
这次给的时间匆忙, 只写了一些最基本的功能, 有很多东西都没实现, 比如登陆界面的美化、实现一记录对应一张图片、添加、删除、修改、登录权限等。

做完后感觉离我想象的网站的差距很大, 上了3年学, 我感觉这门课是我最喜欢的。

我会课后再买一些这方面的书, 争取在找工作时能把自己做的比较好的作品交上去。

相关文档
最新文档