项目实训报告
院系:计算机与信息工程学院
班级:计科专升本1班
姓名:李现盈
学号:12052010130
目录
1.项目说明. IV
1.1 课题的来源和目标. IV
1.2发展现状. V
1.3 完成内容与设计结果. VI
1.3.1 完成内容. VI
1.3.2 设计结果. VII
2.需求分析. 8
2.1 整体说明. 8
2.1.1 模块设计图. 8
2.1.2 模块整体说明. 9
2.2 具体需求. 10
2.2.1. 模块功能. 10
2.2.2 模块设计. 10
3 数据库设计. 12
3.1 数据库概述. 12
3.2 数据库逻辑结构. 13
3.2.1会员详细信息表tb_User 14
3.2.2 聊天信息表tb_Msg 15
3.2.3好友表 tb_Friend 15
4 详细设计. 16
4.1首页. 16
4.2母版页. 18
4.3 好友聊天页面. 27
4.4 好友空间. 32
4.5会员注册和修改页面. 34
4.6 个人空间. 44
5.致谢. 51
1.项目说明
1.1 课题的来源和目标
本系统是应市场需求而开发的管理软件,该软件能为广大用户提供一个便捷但是功能完善的婚恋平台。
目前,中国传统的婚介市场规模已高达200亿,但由于法规滞后,管理责任不明确等原因,使传统婚介市场面临着严重的信任危机,许多原本需要婚介服务的人士徘徊在婚介公司门外。网络婚介的出现改变了传统婚介的弊端,人们只需轻点鼠标就可以轻松认识各种各样的朋友,可以自由自在的海选自己相中的恋人。网上婚恋因其方便、快捷而发展势头强劲。国内网上婚恋市场在20##年开始兴起,20##年规模将达6.8亿元,年均复合增长率106%。目前江西本省的婚恋市场需求非常旺盛,但婚介网站还很少,而且能具有一点影响力的几乎没有。
系统的建设目标是:
(1)打造新乡最诚信的严肃婚恋交友平台。
(2)抓住女性用户,就抓住了婚恋市场。
(3)实用贴心的功能、新颖时尚的内容以及丰富多彩的线下活动,是区别于其他权威网站的不同之处,更是网站赖以生存的根本。
1.2发展现状
目前,婚恋网站已在世界范围内广泛流行,“网络红娘”的出现不仅对传统交友方式和恋爱观形成强烈冲击,更形成了一门具有良好发展前景的新兴产业。与欧美国家相比,我国婚恋网站起步较晚,目前仍处于跑马圈地的群雄纷争时代,一家独大的行业巨头尚未出现。虽然部分专业婚恋网站已获得国内外大笔风险投资,但至今未能找到有效的盈利模式,仍处于“烧钱”阶段。
1. 婚恋网站流行的原因
婚恋网站通常是指借助网络传播平台为用户提供寻找爱情、婚姻伴侣服务的一种专业性网站。它是伴随着信息革命的广泛普及,网络传播技术、安全技术和支付手段的不断进步以及网民规模的不断扩大而发展起来的。
1) 全面便捷的服务。婚恋网站压缩了传统恋爱中结识阶段的繁琐程序,让人足不出户就能搜寻到符合要求的交往对象,并且可以通过网站所提供的在线服务,如发布个人照片、个人资料、博客等文本内容以及匿名邮件、在线聊天等沟通工具,进行及时交流,加深彼此之间的认知与了解。对于恋爱中所遇到的困惑和难题,网站通过热点话题讨论和一对一的专线服务、客服邮件等方式,为用户提出专业性指导与建议。婚恋网站不仅是现代版的“爱情红娘”,更充当了全面经营爱情服务的“情感管家”。
2) 庞大的用户资料库作支撑。与传统婚介相比,婚恋网站的信息资源更丰富,能够为用户提供更多的适合人选。目前,我国几家大型婚恋网站的注册人数均已突破百万人,世纪佳缘和百合网的用户规模更是达到了千万人。据《20##年中国网民婚恋调查报告》显示,交际面狭窄是导致单身的主要原因。婚恋网站的出现,无疑打破了传统恋爱中交友所受到的时空限制,用户可以在网站中结识到世界各地的适婚人群,在扩大交友范围方面突破了现代人生活圈狭小的局限。
3) 独特的匹配方式。目前,世界婚恋网站中常用的匹配方式有两种:搜索制与推荐制。搜索制方式是指用户通过主动设置理想对象的条件选项,并指明每项要求的重要程度来制定选择标准,而后在网站数据库中进行数据匹配检索,从而找出最符合要求的人选;推荐制方式以网站所采用的匹配测评系统为基础,对用户进行心理、个性、价值观等方面的测试,然后向用户推荐性状趋同或互补的人选。无论哪种匹配方式,都是以满足用户要求,建立和谐、幸福长久的婚姻关系为目标。
4) 巨大的市场需求。20##年中国网民中单身群体人数达到1183万,公众通过互联网结识异性的人占32.6%,比例远大于亲友介绍(13%)和征婚(0.4%)等传统方式。据调查显示,目前我国网上婚恋交友用户中,24岁以下的青少年所占比例达到了38.1%,25~30岁的中青年网民比例也达到了24.7%,因此,可以看到目前网络婚恋市场正被越来越多的年轻群体所重视。另外网民数量调查显示,目前我国网上婚恋交友用户中,大学专科、大学本科和硕士以上学历的网民数量分别达到了30.7%、39%和3.9%。另根据iResearch艾瑞咨询的预测,到20##年我国网络交友市场的总体规模可达16亿元,其中有近50%的市场份额将被婚恋交友所占据。
2. 婚恋网站的未来发展趋势
当下,我国婚恋网站经历了对盈利模式的不同探索之后,一些主要网站如百合网、珍爱网、嫁我网展开了对高端消费者市场的争夺,侧重VIP会员的开发,为付高额会费的用户提供全方位、细致周到的婚恋服务。而以世纪佳缘为代表的网站则避开了“线上”的激烈竞争,向婚恋产业的下游——婚庆业迈进。对婚恋网站经营者而言,无论在婚恋行业价值链条的哪个环节发展,顾客是盈利的唯一中心,提供完善的服务,留住顾客是经营关键。以顾客为中心,为消费者提供个性化、细节化、差异化的服务,才是婚恋网站的成功经营之道。
1.3 完成内容与设计结果
1.3.1 完成内容
前台页面:所有页面的模板页面内容,用户个人主页的页面内容以及用户查看他人信息的页面内容。用户可通过IE浏览器输入网址就可以访问系统首页,并能进行登录或注册成为会员,查看最新用户信息(登录或注册成功后)、搜索其他会员并查看其信息(登录或注册成功后)、缘分搜索(登录或注册成功后)等操作。通过导航条用户能进入会员注册页面,登入页面,搜索页面(登录或注册成功后)、缘分搜索页面(登录或注册成功后)和我的空间页面(登录或注册成功后)。
1.3.2 设计结果
所有用户都可以进入平台注册成为会员。
会员登录后能浏览其他用户的信息、搜索用户、为心仪的用户发消息。
会员登录后可以进入个人空间,能查看和修改自己的基本信息、详细信息和择偶信息,能查看自己的消息,能进行会员搜索等操作。
2.需求分析
2.1 整体说明
2.1.1 模块设计图
1. 模块结构图。
系统包括四大模块:首页页面、公共母版页、个人空间页面、他人空间页面。首页,亦称主页、起始页,是一个网站的入口网页,即打开网站后看到的第一个页面;公共母版页,是个人空间页面、他人空间页面、搜索页面、信息页面等页面共同使用的母版页;个人空间页面,显示会员自己的相关信息并能修改;他人空间页面,显示其他某位会员的相关信息。系统结构图如图2.1所示。
图2.1 模块结构图
2. 高层用例图。
通过对珍爱网、百合网的调查分析,经商议研究后画出用例图。用户有普通用户、会员。普通用户可以同过浏览器浏览系统首页,并可以进入注册页面进行注册,成为会员。会员可以浏览首页,并可以在登录页面登录;会员登录后可以浏览个人空间页面和他人空间页面查看自己和他人的相关信息,并且能在个人空间种对自己的信息进行修改;会员登录后能进入缘分搜索页面,使用搜索系统。用例图如图2.2所示。
图2.2 用例图
2.1.2 模块整体说明
根据图2.1对模块的划分,横向综合页面(horizontal comprehensive page)共分为4个部分,各个模块功能如下:
1. 首页页面
作为进入系统后看到的第一个页面,是作为形象的体现,是重中之重,也是网站所有信息的归类目录或分类缩影。首页设计要求首页设计采用粉色为主色,根据大多数人的阅读习惯以色彩、线条、图片等要素将导航条、各功能区以及内容区进行分隔和排版,同时注重协调各区域的主次关系,以营造高易用性与视觉舒适性的人机交互界面为终极目标。
2. 公共母版页
为了使各个页面的风格统一规范,特设计了母版页。此母版页为注册页面、登录页面、搜索页面及子页面、他人空间页面等页面的公共母版页,同样是也粉色为主色,对页面的头部和尾部设计和排版。
3. 个人空间页面
此页面是显示与会员本人相关的一些信息,包括会员自己的基本信息、详细信息和择偶信息以及自己的好友信息和会员短信息等,会员进入后能查看并修改自己的基本信息、详细信息、择偶信息和查看回复会员的短信息。
4. 他人空间页面。
此页面是显示会员的基本信息、详细信息和择偶信息,用来被其他会员查看。
2.2 具体需求
2.2.1. 模块功能
根据图2.1对模块的划分,设计横向综合页面各个模块功能如下:
1. 用户可通过IE浏览器输入网址就可以访问系统首页页面。
2. 首页页面设计简单大方。
3. 用户能进入登录页面或注册页面。
4. 会员在登录后能进入他人空间页面和个人空间页面。
5. 会员登录后能进入搜索页面。
6. 会员在登录后可以加其他会员为好友、聊天。
7. 会员进入个人空间后能查看和修改个人信息、查看好友信息、并与好友发送回复信息。
2.2.2 模块设计
根据图2.2的用例图,结合实际的操作,绘制出活动图。
1) 前台浏览活动图。
这个活动图主要是用户浏览各个页面的一个过程,用户可以直接通过浏览器访问系统首页,但只有通过注册成为会员后才能浏览其他模块的页面及其子页面,具体活动如图2.3所示。
图2.3 前台浏览活动图
3 数据库设计
3.1 数据库概述
SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为组织中的用户提供了一个更安全可靠和更高效的平台用于企业数据和 BI 应用。 Server 20## 为 IT 专家和信息工作者带来了强大的、熟悉的工具,同时降低了在从移动设备到企业数据系统的多平台上创建、部署、管理和使用企业数据和分析应用程序的复杂性。通过全面的功能集、与现有系统的互操作性以及对日常任务的自动化管理能力, Server 20## 为不同规模的企业提供了一个完整的数据解决方案【1】。
作为微软公司SQL Server生产线上的最受期待的产品,在成千上万的电子邮件、成百上千的规格说明以及大量的编译的基础上,SQL Server 2012确保了自己是Windows平台上数据库应用程序中最具戏剧性的新型数据库平台【1】。
SQL Server 2012使部署、管理和优化企业数据以及分析应用程序变得更简单、更容易。作为一个企业数据管理平台,它提供单一管理控制台,使数据管理员能够在任何地方监视、管理和调谐企业中所有的数据库和相关的服务。它还提供了一个可以使用 SQL 管理对象轻松编程的可扩展的管理基础结构,使得用户可以定制和扩展他们的管理环境,同时使独立软件供应商 (ISV) 也能够创建附加的工具和功能来更好地扩展打开即得的能力【1】。
SQL Server 2012通过提供一个集成的管理控制台来监视和管理 SQL Server 关系数据库、Integration Services、Analysis Services、Reporting Services、Notification Services 以及在数量众多的分布式服务器和数据库上的 SQL Server Mobile Edition,从而简化了管理工作【1】。
SQL Server 20## 包含许多可以显著提高开发人员生产效率的新技术。从对 .NET Framework 的支持到与 Visual Studio 的紧密集成,这些功能使开发人员能够以较低的成本更轻松地创建安全、强大的数据库应用程序。SQL Server 2012使开发人员可以利用现有的跨多种开发语言的技巧并且为数据库提供端对端开发环境。本机 XML 功能也使开发人员能够创建运行在不同平台或设备上的新型应用程序【1】。
3.2 数据库逻辑结构
本系统数据库的名字是db_JiaoYou,根据实际情况经过研究决定本数据库共设计了3个数据表,其中横向综合页面模块有4个数据表(以下表格内如字段主键列有“*”,表示该字段为主键;文字描述数据表如字段下有“”表示该字段为该数据表主键,有“”表示该字段为该数据表外键)。
根据实际情况绘制PDM结构如图3.1:
图3.1PDM图
根据PDM图,设计了 tb_User tb_Friend tb_Msg 3个表。具体如下:
3.2.1会员详细信息表tb_User
为了让人对会员有个初步了解,经商议决定,设计此表用于存储会员的基本信息;其中包含的字段有:会员编号、会员使用名、用户密码、昵称、年龄、性别、生日、身高、体重、出生地、居住地、户口所在地、结婚状况、住房状况、工资状况、学历、职业、最后登入时间、是否有孩子、是否有车、宗教信仰、自我介绍、个人头像。
表3-1 会员基本信息表
3.2.2 聊天信息表tb_Msg
3.2.3好友表 tb_Friend
4 详细设计
4.1首页
Login
代码:
public partial class JiaoYou_Login : System.Web.UI.UserControl
{
MarriageLogin login = new MarriageLogin();
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserName"] == null)
{
tab1.Visible = true;
tab2.Visible = false;
}
else
{
tab1.Visible = false;
tab2.Visible = true;
lblNickName.Text = Session["UserName"].ToString();
}
}
protected void imgBtnLogin_Click(object sender, ImageClickEventArgs e)
{
login.UserName = txtUserName.Text;
login.PassWord = txtPwd.Text;
DataSet ds = login.Logon(login);
if (ds.Tables[0].Rows.Count > 0)
{
Session["UserName"] = txtUserName.Text;
Response.Redirect("../jiaoyou/login/MemberDefault.aspx");
}
else
WebMessageBox.Show("用户名称或密码不正确!");
}
}
4.2母版页
Default
代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class JiaoYou_Default : System.Web.UI.Page
{
MarriageLogin login = new MarriageLogin(); //声明会员注册类对象
MarriageFriend friend = new MarriageFriend(); //声明好友信息类对象
static PagedDataSource pds = new PagedDataSource();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
this.BindDataList(); //调用自定义方法
}
private void BindDataList()
{
pds = this.PageDataListBind(Convert.ToInt32(lblCurrentPage.Text), 2);
lnkBtnFirst.Enabled = true; //控件翻页控件都设置为可用
lnkBtnLast.Enabled = true;
lnkBtnNext.Enabled = true;
lnkBtnPrevious.Enabled = true;
if (lblCurrentPage.Text == "1") //如果当前显示第一页,“第一页”和“上一页”按钮不可用。
{
lnkBtnPrevious.Enabled = false;
lnkBtnFirst.Enabled = false;
}
if (lblCurrentPage.Text == pds.PageCount.ToString()) //如果显示最后一页,“末一页”和“下一页”按钮不可用。
{
lnkBtnNext.Enabled = false;
lnkBtnLast.Enabled = false;
}
lblSumPage.Text = pds.PageCount.ToString(); //实现总页数
DataList1.DataSource = pds; //查询会员信息并绑定在DataList
DataList1.DataKeyField = "id"; //在数据源中设置主键字段
DataList1.DataBind(); //执行绑定绑定
}
protected void btnFind_Click(object sender, EventArgs e)
{
//将查询条件存储在Session中
Session["sex"] = Request.Form["sltSex"].ToString();
Session["FAgeStar"] = Request.Form["sltFAgeStar"].ToString();
Session["FAgeEnd"] = Request.Form["sltFAgeEnd"].ToString();
Session["Address"] = (Request.Form["sltState"].ToString() == "0") ? "" : Request.Form["sltState"].ToString() + ((Request.Form["sltCity"].ToString() == "0") ? "" : Request.Form["sltCity"].ToString());
Session["Photo"] = chkPhoto.Checked;
//跳转到查询结果页
Response.Redirect("Result.aspx");
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
//判断用户是否登录
if (Session["UserName"] == null)
WebMessageBox.ShowNew("请登录后再进行添加好友!", "Default.aspx");
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString(); //获取主键ID值
string FriendName = login.SelectUserName(id); //根据ID获取Email
friend.UserName = Session["UserName"].ToString();
friend.FriendName = FriendName;
//加为好友
if (friend.SelectFriend(friend).Tables[0].Rows.Count > 0)
{
WebMessageBox.Show("好友已经加入过,请选择其他好友。");
}
else
{
int i = friend.FriendAdd(friend);
WebMessageBox.Show("好友添加成功!");
}
}
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
//判断用户是否登录
if (Session["UserName"] == null)
WebMessageBox.ShowNew("请登录后再给好友发送消息!", "Default.aspx");
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
Session["FriendName"] = login.SelectUserName(id);
Response.Write("");
Response.Write("");
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
//查询征婚交友详细信息
Session["FriendDetail"] = login.SelectUserName(DataList1.DataKeys[e.Item.ItemIndex].ToString());
Response.Write("");
Response.Write("");
}
protected void lnkBtnFirst_Click(object sender, EventArgs e)
{
lblCurrentPage.Text = "1";
BindDataList();
}
protected void lnkBtnPrevious_Click(object sender, EventArgs e)
{
lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) - 1).ToString();
BindDataList();
}
protected void lnkBtnNext_Click(object sender, EventArgs e)
{
lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) + 1).ToString();
BindDataList();
}
protected void lnkBtnLast_Click(object sender, EventArgs e)
{
lblCurrentPage.Text = lblSumPage.Text;
BindDataList();
}
///
/// 绑定DataList控件,并且设置分页
///
/// 信息类型
/// 查询的关键字(如果为空,则查询所有)
/// 当前页
/// 每页显示数量
///
public PagedDataSource PageDataListBind(int currentPage, int PageSize)
{
PagedDataSource pds = new PagedDataSource();
pds.DataSource = login.SelectUser().Tables[0].DefaultView; //将查询结果绑定到分页数据源上。
pds.AllowPaging = true; //允许分页
pds.PageSize = PageSize; //设置每页显示的页数
pds.CurrentPageIndex = currentPage - 1; //设置当前页
return pds;
}
}
3 result
代码:
public partial class JiaoYou_Result : System.Web.UI.Page
{
MarriageLogin login = new MarriageLogin();
MarriageFriend friend = new MarriageFriend();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
this.FindResult();
}
private void FindResult()
{
login.Sex = Session["sex"].ToString();
login.FriendAgeStar = Convert.ToInt32(Session["FAgeStar"]);
login.FriendAgeEnd = Convert.ToInt32(Session["FAgeEnd"].ToString());
login.Address = Session["Address"].ToString();
DataList1.DataSource = login.SelcetUserResult(login, Convert.ToBoolean(Session["Photo"].ToString()));
DataList1.DataKeyField = "ID";
DataList1.DataBind();
}
protected void btnFind_Click(object sender, EventArgs e)
{
Session["sex"] = Request.Form["sltSex"].ToString();
Session["FAgeStar"] = Request.Form["sltFAgeStar"].ToString();
Session["FAgeEnd"] = Request.Form["sltFAgeEnd"].ToString();
Session["Address"] = (Request.Form["sltState"].ToString() == "0") ? "" : Request.Form["sltState"].ToString() + ((Request.Form["sltCity"].ToString() == "0") ? "" : Request.Form["sltCity"].ToString());
Session["Photo"] = chkPhoto.Checked;
this.FindResult();
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
if (Session["UserName"] == null)
WebMessageBox.ShowNew("请登录后再进行添加好友!", "Default.aspx");
//加为好友 保存到数据库中。
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
string FriendName = login.SelectUserName(id);
friend.UserName = Session["UserName"].ToString();
friend.FriendName = FriendName;
if (friend.SelectFriend(friend).Tables[0].Rows.Count > 0)
{
WebMessageBox.Show("好友已经加入过,请选择其他好友。");
}
else
{
int i = friend.FriendAdd(friend);
WebMessageBox.Show("好友添加成功!");
}
}
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
if (Session["UserName"] == null)
WebMessageBox.ShowNew("请登录后再给好友发送消息!", "Default.aspx");
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
Session["FriendName"] = login.SelectUserName(id);
Response.Write("");
Response.Write("");
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
if (Session["UserName"] == null)
WebMessageBox.ShowNew("请登录后再给好友发送消息!", "Default.aspx");
// WebMessageBox.Show("用户名称或密码不正确!");
//查询征婚交友详细信息
Session["FriendDetail"] = login.SelectUserName(DataList1.DataKeys[e.Item.ItemIndex].ToString());
Response.Write("");
Response.Write("");
}
}
4.3 好友聊天页面
Sendmsg
代码:
public partial class JiaoYou_SendMsg : System.Web.UI.Page
{
MarriageLogin login = new MarriageLogin();
MarriageMsg msg = new MarriageMsg();
protected void Page_Load(object sender, EventArgs e)
{
//查询用户昵称和照片路径
DataSet dsUser = login.SelectUser(Session["UserName"].ToString());
imgUser.ImageUrl = dsUser.Tables[0].Rows[0]["PhotoPath"].ToString();
lblUserNick.Text = dsUser.Tables[0].Rows[0]["NickName"].ToString();
//查询会员昵称和照片路径
DataSet dsFriend = login.SelectUser(Session["FriendName"].ToString());
imgFriend.ImageUrl = dsFriend.Tables[0].Rows[0]["PhotoPath"].ToString();
lblFriendNick.Text = dsFriend.Tables[0].Rows[0]["NickName"].ToString();
}
protected void imgBtnSend_Click(object sender, ImageClickEventArgs e)
{
msg.Sender = Session["UserName"].ToString();
msg.Accepter = Session["FriendName"].ToString();
msg.Msg = txtMsg.Text;
int i = msg.MsgAdd(msg); //将短消息保存到数据库中
WebMessageBox.Show("信息发送成功!", true);
}
}
6 friendmsg
代码:
public partial class JiaoYou_Login_FriendMsg : System.Web.UI.Page
{
MarriageMsg msg = new MarriageMsg();
//3种类别:全部显示(-1代表全部显示),显示未阅读信息(0),显示已阅读信息(1)
static int CheckType = -1;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserName"] == null)
WebMessageBox.Show("由于您长时间对本站没有任何操作,系统自动退出。请您重新登录!", "..//Default.aspx");
if (!IsPostBack)
this.BindGridView();
}
private void BindGridView()
{
msg.Accepter = Session["UserName"].ToString();
switch (CheckType) //根据类型值来显示不同的短消息
{
case -1:
GridView1.DataSource = msg.MsgSelectAccepterMsg(msg);
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();
break;
case 0:
GridView1.DataSource = msg.MsgSelectAccepterMsg(msg, false);
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();
break;
case 1:
GridView1.DataSource = msg.MsgSelectAccepterMsg(msg, true);
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();
break;
}
}
//删除消息
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); //获取主贱ID值
int d = msg.MsgDelete(id); //删除指定的短消息
this.BindGridView(); //调用自定义方法进行数据绑定
}
//查看消息
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
string id = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString(); //获取主贱ID值
int u = msg.MsgUpdate(id); //修改阅读状态
Session["MsgID"] = id;
Response.Write("");
Response.Write("");
}
//回复消息
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
int u = msg.MsgUpdate(GridView1.DataKeys[e.NewEditIndex].Value.ToString()); //修改阅读状态
Session["FriendName"] = GridView1.Rows[e.NewEditIndex].Cells[2].Text;
Response.Write("");
Response.Write("");
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//高亮显示指定行
e.Row.Attributes.Add("onMouseOver", "Color=this.style.backgroundColor;this.style.backgroundColor='#FFF000'");
e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=Color;");
//多余字 使用...显示
e.Row.Cells[3].Text = StringFormat.Out(e.Row.Cells[3].Text, 25);
//删除指定行数据时,弹出询问对话框
((LinkButton)(e.Row.Cells[6].Controls[0])).Attributes.Add("onclick", "return confirm('是否删除当前行数据!')");
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex; //进行分页
this.BindGridView();
}
protected void rdoBtnAll_CheckedChanged(object sender, EventArgs e)
{
CheckType = -1; //显示所有短消息
this.BindGridView();
}
protected void rdoBtnTrue_CheckedChanged(object sender, EventArgs e)
{
CheckType = 1; //显示已阅读短消息
this.BindGridView();
}
protected void rdoBtnFalse_CheckedChanged(object sender, EventArgs e)
{
CheckType = 0; //显示未阅读短消息
this.BindGridView();
}
}
4.4 好友空间
5.Frienddetil
代码:
public partial class JiaoYou_Login_FriendDetail : System.Web.UI.Page
{
MarriageLogin login = new MarriageLogin();
protected void Page_Load(object sender, EventArgs e)
{
this.Title = Session["FriendDetail"].ToString() + "的详细信息";
//基本信息
DataTable dt = login.SelectUser(Session["FriendDetail"].ToString()).Tables[0];
lblBase_NickName.Text = dt.Rows[0]["NickName"].ToString();
lblBase_Sex.Text = dt.Rows[0]["Sex"].ToString();
lblBase_BirthDay.Text = dt.Rows[0]["BirthDay"].ToString();
lblBase_Marray.Text = dt.Rows[0]["Marriage"].ToString();
lblBase_Hight.Text = dt.Rows[0]["Stature"].ToString();
lblBase_Kg.Text = dt.Rows[0]["Avoirdupois"].ToString();
lblBase_Mz.Text = dt.Rows[0]["Nation"].ToString();
lblBase_Study.Text = dt.Rows[0]["Education"].ToString();
lblBase_Menoy.Text = dt.Rows[0]["Earning"].ToString();
lblBase_Look.Text = dt.Rows[0]["Looks"].ToString();
lblBase_Job.Text = dt.Rows[0]["Metier"].ToString();
lblBase_House.Text = dt.Rows[0]["Housing"].ToString();
lblBase_Area.Text = dt.Rows[0]["Address"].ToString();
imgPhoto.ImageUrl = dt.Rows[0]["PhotoPath"].ToString();
//真情告白
lblSexLike.Text = dt.Rows[0]["SexLike"].ToString();
//择友要求
lblFAge.Text = dt.Rows[0]["FriendAgeStar"].ToString() + " 至 " + dt.Rows[0]["FriendAgeEnd"].ToString();
lblFHight.Text = dt.Rows[0]["FriendStatureStar"].ToString() + " 至 " + dt.Rows[0]["FriendStatureEnd"].ToString();
lblFArea.Text = dt.Rows[0]["FriendCome"].ToString();
lblFMarray.Text = dt.Rows[0]["FriendMarriage"].ToString();
//其他信息
lblHaveChild.Text = dt.Rows[0]["HaveBaby"].ToString();
lblHavingChild.Text = dt.Rows[0]["HavingBaby"].ToString();
lblSmoke.Text = dt.Rows[0]["Smoke"].ToString();
lblDrink.Text = dt.Rows[0]["Drink"].ToString();
lblBlood.Text = dt.Rows[0]["BloodType"].ToString();
lblLanguage.Text = dt.Rows[0]["UseLanguage"].ToString();
}
protected void btnFind_Click(object sender, EventArgs e)
{
Session["sex"] = Request.Form["sltSex"].ToString();
Session["FAgeStar"] = Request.Form["sltFAgeStar"].ToString();
Session["FAgeEnd"] = Request.Form["sltFAgeEnd"].ToString();
Session["Address"] = (Request.Form["sltState"].ToString() == "0") ? "" : Request.Form["sltState"].ToString() + ((Request.Form["sltCity"].ToString() == "0") ? "" : Request.Form["sltCity"].ToString());
Session["Photo"] = chkPhoto.Checked;
Response.Redirect("../Result.aspx");
}
}
4.5会员注册和修改页面
loginlogin
代码:
public partial class _Login_Login : System.Web..Page
{
login = new MarriageLogin();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
/************注册交友信息************/
login.UserName = txtUserName.Text;
if (login.SelectUser(login.UserName).Tables[0].Rows.Count > 0)
WebMessageBox.Show("该用户ID存在,请重新输入!");
login.PassWord = txtPwd.Text;
login.NickName = txtNickName.Text;
login.Sex = Request.Form["sltSex"].ToString();
if (login.Sex == "0")
WebMessageBox.Show("请选择您的性别!");
login.BirthDay = txtBirth.Text;
login.Address = Request.Form["sltState"].ToString() + Request.Form["sltCity"].ToString();
if (Request.Form["sltState"].ToString() == "0" || Request.Form["sltCity"].ToString() == "0")
WebMessageBox.Show("请选择您的所在省和地区!");
login.Stature = Request.Form["sltStature"].ToString();
if (login.Stature == "0")
WebMessageBox.Show("请选择您的身高!");
login.Avoirdupois = Request.Form["sltAvoirdupois"].ToString();
if (login.Avoirdupois == "0")
WebMessageBox.Show("请选择您的体重!");
login.Education = Request.Form["sltEducation"].ToString();
if (login.Education == "0")
WebMessageBox.Show("请选择您的最高学历!");
login.Earning = Request.Form["sltEarning"].ToString();
if (login.Earning == "0")
WebMessageBox.Show("请选择您的年收入!");
login.Nation = Request.Form["sltNation"].ToString();
if (login.Nation == "0")
WebMessageBox.Show("请选择您所属民族!");
login.BloodType = Request.Form["sltBloodType"].ToString();
if (login.BloodType == "0")
WebMessageBox.Show("请选择您的血型!");
login.Looks = Request.Form["sltLooks"].ToString();
if (login.Looks == "0")
WebMessageBox.Show("请选择您的相貌!");
login.Metier = txtMetier.Text;
login.Housing = Request.Form["sltHousing"].ToString();
if (login.Housing == "0")
WebMessageBox.Show("请选择住房情况!");
login.BuyCar = Request.Form["sltBuyCar"].ToString();
if (login.BuyCar == "0")
WebMessageBox.Show("请选择您的购车情况!");
login.Marriage = Request.Form["sltMarriage"].ToString();
if (login.Marriage == "0")
WebMessageBox.Show("请选择您的婚姻状况!");
login.HaveBaby = Request.Form["sltHaveBaby"].ToString();
if (login.HaveBaby == "0")
WebMessageBox.Show("请选择您现在时候有小孩!");
login.HavingBaby = Request.Form["sltHavingBaby"].ToString();
if (login.HavingBaby == "0")
WebMessageBox.Show("请选择您将来是否要小孩!");
login.Smoke = Request.Form["sltSmoke"].ToString();
if (login.Smoke == "0")
WebMessageBox.Show("请选择您是否吸烟!");
login.Drink = Request.Form["sltDrink"].ToString();
if (login.Drink == "0")
WebMessageBox.Show("请选择您是否喝酒!");
login.UseLanguage = txtLanage.Text;
login.SexLike = txtSexLike.Text;
/***设置速配条件***/
login.FriendCome = Request.Form["sltFState"].ToString() + Request.Form["sltFCity"].ToString();
login.FriendAgeStar = Convert.ToInt32(Request.Form["sltFAgeStar"]);
login.FriendAgeEnd = Convert.ToInt32(Request.Form["sltFAgeEnd"]);
login.FriendStatureStar = Convert.ToInt32(Request.Form["sltFStatureStar"]);
login.FriendStatureEnd = Convert.ToInt32(Request.Form["sltFStatureEnd"].ToString());
login.FriendMarriage = Request.Form["sltFMarriage"].ToString();
int i = login.Login(login);
}
protected void btnCheck_Click(object sender, EventArgs e)
{
login.UserName = txtUserName.Text;
if (login.SelectUser(login.UserName).Tables[0].Rows.Count >0)
WebMessageBox.Show("该用户ID存在,请重新输入!");
}
}
8 loginupdate
代码:
public partial class JiaoYou_Login_LoginUpdate : System.Web.UI.Page
{
MarriageLogin login = new MarriageLogin();
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = login.SelectUser(Session["UserName"].ToString()).Tables[0];
txtUserName.Text = dt.Rows[0]["UserName"].ToString();
lblPwd.Text = dt.Rows[0]["PassWord"].ToString();
sltSex.Value = dt.Rows[0]["Sex"].ToString();
txtNickName.Text = dt.Rows[0]["NickName"].ToString();
txtBirth.Text = dt.Rows[0]["BirthDay"].ToString();
string address = dt.Rows[0]["Address"].ToString();
//将省市分开
int position = address.LastIndexOf("省");
if (position == -1)
{
position = address.LastIndexOf("区");
}
sltState.Value = address.Substring(0, position + 1);
sltCity.Items.Add(address.Substring(position + 1, address.Length - position - 1));
sltCity.Value = address.Substring(position + 1, address.Length - position - 1);
sltStature.Value = dt.Rows[0]["Stature"].ToString();
sltAvoirdupois.Value = dt.Rows[0]["Avoirdupois"].ToString();
sltEducation.Value = dt.Rows[0]["Education"].ToString();
sltEarning.Value = dt.Rows[0]["Earning"].ToString();
sltNation.Value = dt.Rows[0]["Nation"].ToString();
sltBloodType.Value = dt.Rows[0]["BloodType"].ToString();
sltLooks.Value = dt.Rows[0]["Looks"].ToString();
txtMetier.Text = dt.Rows[0]["Metier"].ToString();
sltHousing.Value = dt.Rows[0]["Housing"].ToString();
sltBuyCar.Value = dt.Rows[0]["BuyCar"].ToString();
sltMarriage.Value = dt.Rows[0]["Marriage"].ToString();
sltHaveBaby.Value = dt.Rows[0]["HaveBaby"].ToString();
sltHavingBaby.Value = dt.Rows[0]["HavingBaby"].ToString();
sltSmoke.Value = dt.Rows[0]["Smoke"].ToString();
sltDrink.Value = dt.Rows[0]["Drink"].ToString();
txtLanage.Text = dt.Rows[0]["UseLanguage"].ToString();
txtSexLike.Text = dt.Rows[0]["SexLike"].ToString();
//********修改速配条件***********//
string Faddress = dt.Rows[0]["FriendCome"].ToString();
if (Faddress != "00") //主要用于设置地区不限的用户。
{
//将省市分开
int Fposition = Faddress.LastIndexOf("省");
if (Fposition == -1)
{
Fposition = Faddress.LastIndexOf("区");
}
sltFState.Value = Faddress.Substring(0, Fposition + 1);
sltFCity.Items.Add(Faddress.Substring(Fposition + 1, Faddress.Length - Fposition - 1));
sltFCity.Value = Faddress.Substring(Fposition + 1, Faddress.Length - Fposition - 1);
}
sltFAgeStar.Value = dt.Rows[0]["FriendAgeStar"].ToString();
sltFAgeEnd.Value = dt.Rows[0]["FriendAgeEnd"].ToString();
sltFStatureStar.Value = dt.Rows[0]["FriendStatureStar"].ToString();
sltFStatureEnd.Value = dt.Rows[0]["FriendStatureEnd"].ToString();
sltFMarriage.Value = dt.Rows[0]["FriendMarriage"].ToString();
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
/************修改交友信息************/
login.UserName = txtUserName.Text;
login.PassWord = txtPwd.Text;
login.NickName = txtNickName.Text;
login.Address = Request.Form["sltState"].ToString() + Request.Form["sltCity"].ToString();
if (Request.Form["sltState"].ToString() == "0" || Request.Form["sltCity"].ToString() == "0")
WebMessageBox.Show("请选择您的所在省和地区!");
login.Stature = Request.Form["sltStature"].ToString();
if (login.Stature == "0")
WebMessageBox.Show("请选择您的身高!");
login.Avoirdupois = Request.Form["sltAvoirdupois"].ToString();
if (login.Avoirdupois == "0")
WebMessageBox.Show("请选择您的体重!");
login.Education = Request.Form["sltEducation"].ToString();
if (login.Education == "0")
WebMessageBox.Show("请选择您的最高学历!");
login.Earning = Request.Form["sltEarning"].ToString();
if (login.Earning == "0")
WebMessageBox.Show("请选择您的年收入!");
login.Nation = Request.Form["sltNation"].ToString();
if (login.Nation == "0")
WebMessageBox.Show("请选择您所属民族!");
login.BloodType = Request.Form["sltBloodType"].ToString();
if (login.BloodType == "0")
WebMessageBox.Show("请选择您的血型!");
login.Looks = Request.Form["sltLooks"].ToString();
if (login.Looks == "0")
WebMessageBox.Show("请选择您的相貌!");
login.Metier = txtMetier.Text;
login.Housing = Request.Form["sltHousing"].ToString();
if (login.Housing == "0")
WebMessageBox.Show("请选择住房情况!");
login.BuyCar = Request.Form["sltBuyCar"].ToString();
if (login.BuyCar == "0")
WebMessageBox.Show("请选择您的购车情况!");
login.Marriage = Request.Form["sltMarriage"].ToString();
if (login.Marriage == "0")
WebMessageBox.Show("请选择您的婚姻状况!");
login.HaveBaby = Request.Form["sltHaveBaby"].ToString();
if (login.HaveBaby == "0")
WebMessageBox.Show("请选择您现在时候有小孩!");
login.HavingBaby = Request.Form["sltHavingBaby"].ToString();
if (login.HavingBaby == "0")
WebMessageBox.Show("请选择您将来是否要小孩!");
login.Smoke = Request.Form["sltSmoke"].ToString();
if (login.Smoke == "0")
WebMessageBox.Show("请选择您是否吸烟!");
login.Drink = Request.Form["sltDrink"].ToString();
if (login.Drink == "0")
WebMessageBox.Show("请选择您是否喝酒!");
login.UseLanguage = txtLanage.Text;
login.SexLike = txtSexLike.Text;
/***设置速配条件***/
login.FriendCome = Request.Form["sltFState"].ToString() + Request.Form["sltFCity"].ToString();
login.FriendAgeStar = Convert.ToInt32(Request.Form["sltFAgeStar"]);
login.FriendAgeEnd = Convert.ToInt32(Request.Form["sltFAgeEnd"]);
login.FriendStatureStar = Convert.ToInt32(Request.Form["sltFStatureStar"]);
login.FriendStatureEnd = Convert.ToInt32(Request.Form["sltFStatureEnd"].ToString());
login.FriendMarriage = Request.Form["sltFMarriage"].ToString();
int i = login.LoginUpdate(login);
WebMessageBox.Show("会员档案信息修改成功!");
}
}
4.6 个人空间
memberdefault代码:
public partial class JiaoYou_Login_MemberDefault : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
10 memberfriend代码:
public partial class JiaoYou_Login_MemberFriend : System.Web.UI.Page
{
MarriageFriend friend = new MarriageFriend();
MarriageLogin login = new MarriageLogin();
protected void Page_Load(object sender, EventArgs e)
{
this.BindGridView();
}
private void BindGridView()
{
friend.UserName = Session["UserName"].ToString();
GridView1.DataSource = friend.SelectFriendByUserName(friend);
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
friend.FriendDelete(id);
this.BindGridView();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
Session["FriendName"] = GridView1.Rows[e.NewEditIndex].Cells[4].Text;
Response.Write("");
Response.Write("");
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
this.BindGridView();
}
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
//查询征婚交友详细信息
Session["FriendDetail"] = GridView1.Rows[e.NewSelectedIndex].Cells[4].Text;
Response.Write("");
Response.Write("");
}
}
11memberinfor代码:
public partial class JiaoYou_Login_MemberInfo : System.Web.UI.Page
{
MarriageLogin login = new MarriageLogin();
MarriageFriend friend = new MarriageFriend();
MarriageMsg msg = new MarriageMsg();
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserName"] == null)
WebMessageBox.Show("由于您长时间对本站没有任何操作,系统自动退出。请您重新登录!", "..//Default.aspx");
if (!IsPostBack)
{
lblUserName.Text = Session["UserName"].ToString();
this.GetInfo(); //统计会员信息
}
}
protected void btnUpLoad_Click(object sender, EventArgs e)
{
//将附件路径
string filePage = this.FileUpload1.PostedFile.FileName;
//判断附件不能为空!
if (filePage == string.Empty)
{
WebMessageBox.Show("上传图片不能为空!");
}
//获取附件名称扩展名
string fileExt = filePage.Substring(filePage.LastIndexOf(".") + 1);
//在数据库中获取会员ID,然后为上传图片命名
string fileName = login.SelectUserID(lblUserName.Text) + "." + fileExt;
//设置附件上传到的服务器路径
string path = "~/JiaoYou/Photo/" + fileName;
//将文件保存到服务器上
FileUpload1.PostedFile.SaveAs(Server.MapPath(path));
//将图片路径保存到数据库中
int i = login.UpdateUserPhoto(login.SelectUserID(lblUserName.Text), path);
WebMessageBox.Show("图片上传成功!", "MemberInfo.aspx");
}
private void GetInfo()
{
//显示会员照片
Image1.ImageUrl = login.SelectUser(lblUserName.Text).Tables[0].Rows[0]["PhotoPath"].ToString();
//得到会员用户ID
friend.FriendName = lblUserName.Text;
//统计被加为好友个数
lblFriendSum.Text = friend.SelectFriendSum(friend).Tables[0].Rows.Count.ToString();
//得到会员用户ID
msg.Accepter = lblUserName.Text;
//统计未读短信息
lblMsgSum.Text = msg.MsgSelectAccepterMsg(msg, false).Tables[0].Rows.Count.ToString();
}
}
12 msgshow
代码:
public partial class Jiao_Login_MsgShow : System.Web.UI.Page
{
MarriageMsg msg = new MarriageMsg();
MarriageLogin login = new MarriageLogin();
static string FriendName = "";
protected void Page_Load(object sender, EventArgs e)
{
DataSet dsMsg = msg.MsgSelectID(Session["MsgID"].ToString());
txtMsg.Text = dsMsg.Tables[0].Rows[0]["msg"].ToString();
string UserName = dsMsg.Tables[0].Rows[0][2].ToString();
FriendName = dsMsg.Tables[0].Rows[0][1].ToString();
DataSet dsUser = login.SelectUser(UserName);
imgUser.ImageUrl = dsUser.Tables[0].Rows[0]["PhotoPath"].ToString();
lblUserNick.Text = dsUser.Tables[0].Rows[0]["NickName"].ToString();
DataSet dsFriend = login.SelectUser(FriendName);
imgFriend.ImageUrl = dsFriend.Tables[0].Rows[0]["PhotoPath"].ToString();
lblFriendNick.Text = dsFriend.Tables[0].Rows[0]["NickName"].ToString();
}
protected void imgBtnSend_Click(object sender, ImageClickEventArgs e)
{
Session["FriendName"] = FriendName;
Response.Redirect("../SendMsg.aspx");
}
}
5.致谢
致 谢
通过这一阶段的努力,我的项目《婚恋交友平台——横向综合页面研究与实现》终于完成了。在此,我非常感谢常青老师在我项目的设计阶段给自己的细心指导,从最初的选题题,到资料收集,到项目的设计、开发和修改,到定稿,整个过程中他们给了我耐心的指导和无私的帮助。为了指导我们的项目,他为同学们付出了很多,在此我向他表示我诚挚的谢意。