026_班级网站(ASP.NET)
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
数据库设计
3.1需求分析
作为一个班级风采网站系统,同其他类型的网站一样,首先应该包括用户表,用户表用来存储已注册用户的各项信息。
在线论坛对应于数据库中两张表:帖子信息表和帖子回复表。帖子信息表中存储了论坛中用户发的所有帖子。同时每一个帖子都应有它的回复,在数据库的存储中,将所有的帖子的回复都放到了帖子回复表中,通过表中帖子的不同编号来区分不同的帖子的回复。
网站还包括相册模块和留言簿模块,因此数据库中还应包含图片信息表与留言表用来存储上载图片的所有信息和留言的各项信息。
3.2 数据库表结构
根据需求分析及模块划分,设计数据库表结构如下。
(1)用户信息表
用户信息表中包括有用户编号,用户名,用户密码,用户QQ,用户E-mail,用户自我描述共六个字段,主键为用户编号,具体设计如表3-1所示。
表3-1 用户基本信息表Users
编号 字段名称 数据类型 说明
1 ID Int 用户ID(主键)(自动)
2 UserName Nvarchar(20) 用户登录名 【买计算机毕业论文就到www.think58.com】
3 Pass Nvarchar(20) 用户密码
4 QQ Int 用户QQ号
5 Mail Nvarchar(50) E-mail
6 Sign Nvarchar(200) 用户自我介绍 copyright think58 [资料来源:http://think58.com]
(2) 帖子信息表
表3-2 帖子信息表Threads
编号 字段名称 数据类型 说明
1 ThreadID Int 帖子编号(主键)
2 Author Nvarchar(50) 发帖人用户名
3 Subject Nvarchar(50) 帖子标题
4 Content Ntext(16) 帖子内容
5 Reply Int 帖子总回复数
6 TotalView Int 帖子被浏览数
7 PostTime Datetime 发帖时间
帖子信息表包括帖子编号,发帖用户名,帖子标题,帖子内容,帖子总回复数,帖子总浏览数,发帖时间共七个字段,主键为帖子编号,具体设计如表3-2所示。
(3)帖子回复表
回复信息表包括回复信息编号,帖子编号,回复标题,回复内容,回复者用户名,回复时间共六个字段。主键为回复信息编号,帖子编号是此表的外键,用此字段与帖子表的主键帖子编号相联系。具体设计如表3-3所示。
表3-3 回复信息表Messages
编号 字段名称 数据类型 说明
1 MessageID Int 信息ID(主键)(自动)
2 ThreadID Int 帖子编号(外键)
3 Subject Nvarchar(50) 回复信息标题
4 Content Ntext 回复内容
5 Author Nvarchar(50) 回复者
6 PostTime Datetime 回复时间
(4) 相册表
相册表包括相片编号,相片名称,相片上载时间共三个字段,主键为相片编号,具体设计如表3-4所示。
think58好,好think58 [来源:http://www.think58.com]
表3-4 相册表Photos
编号 字段名称 数据类型 说明
1 PhotoID Int 照片ID(主键)
2 PhotoName Nvarchar(50) 照片名称
3 uploadtime Datetime 上传时间
(5)留言表
留言表包括留言编号,留言者姓名,留言标题,留言内容,留言时间共五个字段,主键为留言编号,具体设计如表3-5所示。
表3-5 留言表GuestBook
编号 字段名称 数据类型 说明
1 GuestBookID Int 留言ID(主键)(自动)
2 Subject Nvarchar(50) 留言标题
3 Content Ntext 留言内容
4 Username Nvarchar(50) 留言者姓名
5 Uptime Datetime 留言时间
4.详细设计
4.1 导航栏与登录模块
按用户的不同身份:一般用户和管理员,在一开始连接上网站即通过不同身份选择不同的登陆入口:一般用户登陆入口与管理员登陆入口。在用户登陆界面既可进行用户的登陆,同时也可点击注册按钮进入注册页面。管理员登陆成功后即可对网站进行管理。
(1)导航栏
导航栏的设计主要是建立一个用户自定义控件Header.ascx。在Header.ascx中,先插入一张表,然后将连接到各模块主页面的超链接图片插入其中,完成自定义控件的建立。在每个需要加入它的页面首先进行注册,然后在<from>中进行调用即可。如: think58好,好think58 [资料来源:www.THINK58.com]
<%@ RegisterTagPrefix="uc1" TagName="header"
Src="~/selfcontrol/header.ascx"@%>
<from><uc1:header id="header1" runat="server"></uc1:header></from>
(2)登录页面
登陆页面主要控件为用户登陆按钮Button1,点击后在后台执行代码,首先声明一UsersDB的对象,调用UsersDB的UserLogin()函数,UserLogin()函数再调用存储过程Checkuser执行用户名和密码检验,UserLogin()返回一个串值,如果用户名与密码正确则返回用户名,否则返回空串。控件代码如下:
private void Button1_Click(object sender, System.EventArgs e)
{
UsersDB user = new UsersDB();
string username = user.UserLogin(TextBox1.Text,TextBox2.Text);
if (username.Length==0)
{
Label1.Visible=true;
TextBox1.Text="";
TextBox2.Text="";
}
else
{
Session["UserName"] = TextBox2.Text;
Response.Redirect("~/bbs/ShowThread.aspx");
}
}
调用UserLogin()函数代码如下: [版权所有:http://think58.com]
public string UserLogin(string Name,string Password)
{
//创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("Checkuser", myConnection);
//把命令对象的命令类型设置为存储过程。
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterName = new SqlParameter("@UserName", SqlDbType.NVarChar,20);
parameterName.Value = Name;
myCommand.Parameters.Add(parameterName);
SqlParameter parameterPassword = new SqlParameter("@Pass", SqlDbType.NVarChar,20);
parameterPassword.Value = Password;
myCommand.Parameters.Add(parameterPassword);
//执行命令。
myConnection.Open();
SqlDataReader reader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if (reader.Read())
return Name;
else
return string.Empty;
}
[版权所有:http://think58.com]
上一篇:022_教学辅助系统