零点起飞学C#之我的校内网.pptx_第1页
零点起飞学C#之我的校内网.pptx_第2页
零点起飞学C#之我的校内网.pptx_第3页
零点起飞学C#之我的校内网.pptx_第4页
零点起飞学C#之我的校内网.pptx_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第27章 我的校内网,校内网是当前比较流行的交流网站之一。它包括登录、主页面、好友、日志、相册、聊天等功能。本章将使用Visual Studio 2010集成开发环境和SQL Server 2012数据库版本开发校内网网站。该网站名称为MyXiaonei,数据库名称为XiaoneiDB。本章将给大家详细讲述校内网的开发方法。,27.1 系统总体设计,本节介绍校内网MyXiaonei网站的总体设计,主要包括系统功能设计、MyXiaonei网站的组成、XiaoneiDB数据库设计、数据库实体类设计、标题模块、网站配置等。,27.1.1 系统功能设计,在我的校内网中,给大家介绍几个常用的功能,主要包括登录、添加好友、浏览好友、上传照片、浏览照片、写日志、浏览日志等功能。具体的功能描述如下所示: 用户登录:验证用户的身份是否合法。 主页面:校内网网站的主页面。 我的好友:按照分类方式浏览好友。 添加好友:可以查询用户,并添加为好友。 我的相册:按照分类方式浏览照片。 上传照片:上传照片到服务器,并指定相应的分类。 我的日志:按照分类方式浏览日志。 添加日志:将新的日志添加到指定的分类下。,27.1.2 校内网组成,该校内网网站的名称为MyXiaonei。在Visual Studio 2010的“解决方案资源管理器”面板中查看MyXiaonei网站。该网站的组成如下所示: App_Code文件夹:包括操作数据的XiaoneiDB.dbml文件和MyXiaoneiSystem.cs类文件。 App_Themes文件夹:包括MyXiaonei网站的主题和样式文件,如web.css、web. skin等。 UserControls文件夹:包括MyXiaonei网站使用的用户控件Header.ascx和Title.ascx。 Web文件夹:包括校内网最为常用的功能的页面,如我的好友页面MyFriend.aspx、我的相册页面MyPhoto.aspx等。 Default.aspx页面为用户登录页面。 Web.config文件为MyXiaonei网站的配置文件,它配置了数据库连接字符串等信息。,27.1.3 数据库设计,该校内网网站使用的数据库版本为SQL Server 2012,数据库名称为XiaoneiDB。数据库中主要包含5个表:User、Category、 Friend 、 Log 、 Photo表。 1User表 User表保存用户的信息。 2Category表 Category表保存分类的信息。 3Friend表 Friend表保存好友的信息。 4Log表 Log表保存日志的信息。 5Photo表 Photo表保存照片的信息。,27.1.4 数据库实体类设计,该校内网为XiaoneiDB数据库创建了DBML文件,名称为XiaoneiDB.dbml。然后把XiaoneiDB数据库中的所有表添加到该文件中。,27.1.5 标题模块,标题模块由TitleUC.ascx用户控件实现,它将用来显示标题。 TitleUC.ascx用户控件在其Page_Load(object sender,EventArgs e)事件中调用DataBind()方法绑定用户控件的数据。程序代码如下: protected void Page_Load(object sender,EventArgs e) this.DataBind(); ,27.1.6 配置文件Web.config,MyXiaonei网站的连接字符串放置在Web.config配置文件的元素中,具体代码如下: ,MyXiaoneiSystem类的静态成员XiaoneiDBConnectionString获取MyXiaonei网站的连接字符串,程序代码如下: public class MyXiaoneiSystem / / 访问XiaoneiDB数据库的连接字符串 / public static string XiaoneiDBConnectionString = ConfigurationManager.ConnectionStrings“XiaoneiDBConnectionString“.ConnectionString; ,27.2 常用功能模块实现,校内网的几个常用的功能主要包括登录、添加好友、浏览好友、上传照片、浏览照片、写日志、浏览日志等功能。本节主要介绍这些功能的具体实现方法。,27.2.1 登录页面,登录功能由Default.aspx页面实现。该页面上有输入用户名和密码的文本框,实现用户登录的功能。 1界面设计 Default.aspx页面声明了2个TextBox控件和1个ImageButton控件,它们的ID属性值分别为tbUsername、tbPassword和ibtLogin。其中,tbUsername和tbPassword控件分别供用户输入用户名和密码;ibtLogin控件显示为“登录”按钮,实现登录的功能。 2事件设计 当用户单击Default.aspx页面中的“登录”按钮(ibtLogin控件)时,将触发ibtLogin控件的Click事件:ibtLogin_Click(object sender,EventArgs e)。 ibtLogin_Click(object sender,ImageClickEventArgs e)事件将用户输入的用户名和密码提交到数据库,并检查用户名和密码是否正确。如果正确,则登录成功,否则,登录失败。具体步骤如下所示。,(1)创建XiaoneiDB数据库的数据上下文对象db。 (2)根据用户输入的用户名和密码,使用“from u in db.User where u.Username = tbUser name.Text.Trim() ”表达式查询User表。 (3)判断用户输入的用户名和密码是否正确。 (4)如果用户输入的用户名和密码正确,则登录成功,并保存用户的ID值和用户名,最终跳转到校内网的主页面:Main.aspx页面。,27.2.2 主页面,校内网主页面由Main.aspx和LeftTree.aspx页面实现。LeftTree.aspx页面使用TreeView控件(ID属性的值为tvOperation)显示用户的功能链接,如“我的好友”、“我的相册”、“我的日志”等。 Main.aspx页面使用了框架,并放置了两个元素,它们的name属性的值分别为:Left和Desktop。其中,Left框架放置LeftTree.aspx页面,Desktop框架默认放置MyFriend.aspx页面。,27.2.3 我的好友,我的好友是由MyFriend.aspx页面实现的。该页面按照系统默认的分类显示当前登录用户的好友。 1界面设计 在下述程序代码中,MyFriend.aspx页面声明了1个DataList控件、1个GridView控件和1个ImageButton控件,它们的ID属性的值分别为dlCategory、gvFriend和ibtAdd。dlCategory控件以水平排列方式显示好友的分类,单击某一个分类的链接可以显示该分类下的好友。gvFriend控件显示当前分类(dlCategory控件所选择的分类)下的好友的用户名。ibtAdd控件显示为“添加”按钮,单击该按钮跳转到添加好友的页面AddFriend.aspx。,2初始化 MyFriend.aspx页面的初始化功能由Page_Load(object sender, EventArgs e)事件和BindPageData()函数实现,具体步骤如下所示。 (1)Page_Load(object sender, EventArgs e)事件从Session对象中获取当前登录用户的ID值,并保存在userID变量中。 (2)调用BindPageData()方法在dlCategory控件中显示分类,并在gvFriend控件显示当前分类下的好友。 (3)创建XiaoneiDB数据库的上下文对象db。 (4)调用Where方法从Category查询数据,并作为dlCategory控件的数据源,同时绑定该控件的数据。 (5)如果dlCategory控件的项数量大于0,则设置第一项为选择项。 (6)使用“from f in db.Friend join u in db.User on f.FriendID equals u.ID where f.CategoryID.Value.ToString() = dlCategory.SelectedValue.ToString() select u;”查询表达式查询当前分类下的好友,并作为gvFriend控件的数据源,同时绑定该控件的数据。,3事件设计 用户单击dlCategory控件中每一个分类的链接时,将触发dlCategory控件的ItemCommand事件:dlCategory_ItemCommand(object source,DataListCommandEventArgs e)。具体步骤如下所示。 (1)设置当前项为选择项。 (2)创建XiaoneiDB数据库的上下文对象db。 (3)使用“from f in db.Friend join u in db.User on f.FriendID equals u.ID where f.Category ID.Value.ToString() = e.CommandArgument.ToString() select u;”查询表达式查询当前分类下的好友,并作为gvFriend控件的数据源,同时绑定该控件的数据。 用户单击MyFriend.aspx页面中的“添加”按钮(ibtAdd控件)时,将触发ibtAdd控件的Click事件:ibtAdd_Click(object sender,ImageClickEventArgs e)。该事件实现跳转到添加好友的页面MyFriend.aspx,程序代码如下: protected void ibtAdd_Click(object sender,ImageClickEventArgs e) Response.Redirect(“/Web/AddFriend.aspx“); ,27.2.4 添加好友,添加好友由AddFriend.aspx页面实现。该页面为用户提供添加好友的功能。 1界面设计 在下述程序代码中,AddFriend.aspx页面声明了1个DropDownList控件、1个TextBox控件、1个Button控件、1个GridView控件和1个ImageButton控件,它们的ID属性的值分别为ddlCategory、tbUsername、ibtSearch、gvUser和ibtCommit。ddlCategory控件以下拉列表的方式显示分类。tbUsername控件供用户输入被查找的用户名。ibtSearch控件执行查找功能,gvUser控件显示查找的结果。ibtCommit控件显示为“提交”按钮,单击该按钮,可以将用户选择的用户设置为好友。 2初始化 AddFriend.aspx页面的初始化功能由Page_Load(object sender, EventArgs e)事件和BindPageData()函数实现,具体步骤如下所示。 (1)Page_Load(object sender, EventArgs e)事件从Session对象中获取当前登录用户的ID值,并保存在userID变量中。 (2)调用BindPageData()方法在dlCategory控件中显示分类。 (3)创建XiaoneiDB数据库的上下文对象db。 (4)调用Where方法从Category查询数据,并作为dlCategory控件的数据源,同时绑定该控件的数据。在绑定ddlCategory控件的数据时,需要设置DataTextField和DataValueField属性的值分别为Name和ID。,3事件设计 用户单击AddFriend.aspx页面中的“查找”按钮(ibtSearch控件)时,将触发ibtSearch控件的Click事件:ibtSearch_Click(object sender,EventArgs e)。 ibtSearch_Click(object sender,EventArgs e)事件实现查找好友的功能,并将查找结果显示在gvUser控件中,具体步骤如下所示。 (1)创建XiaoneiDB数据库的上下文对象db。 (2)调用Where方法从User表中查询数据,并作为gvUser控件的数据源,同时绑定该控件的数据,即将查询结果显示在gvUser控件中。 用户单击AddFriend.aspx页面中的“提交”按钮(ibtCommit控件)时,将触发ibtCommit控件的Click事件:ibtCommit_Click(object sender,ImageClickEventArgs e)。 单击事件实现将好友保存到数据库中的功能。具体步骤如下所示。 (1)创建XiaoneiDB数据库的上下文对象db。 (2)使用foreach语句遍历gvUser控件的每一行,并找到cbUser控件。 (3)如果cbUser控件的Checked属性的值为true,则创建Friend类的实例friend。 (4)设置friend实例的MyID、FriendID、CreateDate、Flag、CategoryID等属性的值。 (5)调用InsertOnSubmit()方法将friend实例插入到Friend表中。 (6)调用db实例的SubmitChanges()方法将上述操作提交到数据库。,27.2.5 我的相册,我的相册由MyPhoto.aspx页面实现。该页面按照系统默认的分类显示当前登录用户的照片。 1界面设计 在下述程序代码中,MyPhoto.aspx页面声明了1个DataList控件、1个GridView控件和1个ImageButton控件,它们的ID属性的值分别为dlCategory、gvPhoto和ibtAdd。dlCategory控件以水平排列方式显示照片的分类,单击某一个分类的链接可以显示该分类下的照片。gvPhoto控件显示当前分类(dlCategory控件所选择的分类)下的照片。ibtAdd控件显示为“添加”按钮,单击该按钮跳转到添加照片的页面AddPhoto.aspx。 2初始化 MyFriend.aspx页面的初始化功能由Page_Load(object sender, EventArgs e)事件和BindPageData()函数实现,具体步骤如下所示。,(1)Page_Load(object sender, EventArgs e)事件从Session对象中获取当前登录用户的ID值,并保存在userID变量中。 (2)调用BindPageData()方法在dlCategory控件中显示分类,并在gvPhoto控件显示当前分类下的照片。 (3)创建XiaoneiDB数据库的上下文对象db。 (4)调用Where方法从Category查询数据,并作为dlCategory控件的数据源,同时绑定该控件的数据。 (5)如果dlCategory控件的项数量大于0,则设置第一项为选择项。 (6)使用“db.Photo.Where(p = p.CategoryID.Value.ToString() = dlCategory.SelectedValue.ToString();”查询表达式查询当前分类分类下的照片,并作为gvPhoto控件的数据源,同时绑定该控件的数据。,3事件设计 用户单击dlCategory控件中每一个分类的链接时,将触发dlCategory控件的ItemCommand事件:dlCategory_ItemCommand(object source,DataListCommandEventArgs e)。具体步骤如下所示。 (1)设置当前项为选择项。 (2)创建XiaoneiDB数据库的上下文对象db。 (3)使用Where方法从Photo表中获取数据,并作为gvPhoto控件的数据源,同时绑定该控件的数据。 用户单击MyPhoto.aspx页面中的“添加”按钮(ibtAdd控件)时,将触发ibtAdd控件的Click事件:ibtAdd_Click(object sender,ImageClickEventArgs e)。该事件实现跳转到添加照片的页面UploadPhoto.aspx,程序代码如下: protected void ibtAdd_Click(object sender,ImageClickEventArgs e) Response.Redirect(“/Web/UploadPhoto.aspx“); ,27.2.6 上传照片,上传照片由UploadPhoto.aspx页面实现。该页面为用户提供上传照片的功能。照片文件保存到硬盘中,照片信息保存到数据库。 1界面设计 在下述程序代码中,UploadPhoto.aspx页面声明了1个DropDownList控件、1个FileUpload控件、1个Label控件和1个ImageButton控件,它们的ID属性的值分别为ddlCategory、fuPhoto、lbMessage和ibtCommit。ddlCategory控件以下拉列表方式显示分类。fuPhoto控件为用户提供选择被上传的照片,并实现上传照片的功能。lbMessage控件显示上传照片操作的结果。ibtCommit控件显示为“提交”按钮,单击该按钮,实现上传照片的功能。,2初始化 UploadPhoto.aspx页面的初始化功能由Page_Load(object sender, EventArgs e)事件和BindPageData()函数实现,具体步骤如下: (1)Page_Load(object sender, EventArgs e)事件从Session对象中获取当前登录用户的ID值,并保存在userID变量中。 (2)调用BindPageData()方法在dlCategory控件中显示分类。 (3)创建XiaoneiDB数据库的上下文对象db。 (4)调用Where方法从Category查询数据,并作为dlCategory控件的数据源,同时绑定该控件的数据。在绑定ddlCategory控件的数据时,需要设置DataTextField和DataValueField属性的值分别为Name和ID。,3事件设计 用户单击UploadPhoto.aspx页面中的“提交”按钮(ibtCommit控件)时,将触发ibtCommit控件的Click事件:ibtCommit_Click(object sender,ImageClickEventArgs e)。 单击事件实现将照片保存到数据库中的功能,具体步骤如下所示。 (1)判断用户是否选择被上传的照片。如果为选择,则终止该事件。 (2)获取被上传照片的类型、大小。 (3)调用MyXiaoneiSystem类的静态方法CreateDateTimeString()创建基于当前时间的文件名,并获取被上传照片的扩展名,最后构成保存新文件的地址,保存为url变量。 (4)将url映射为物理路径,并保存为fullPath变量。 (5)判断被上传的照片是否存在。如果已经存在,则终止该事件,并在lbMessage控件中显示消息。 (6)调用fuPhoto控件的SaveAs()方法将照片保存到服务器的硬盘上。 (7)创建XiaoneiDB数据库的上下文对象db。 (8)创建Photo类的实例photo。 (9)设置photo实例的CategoryID、Createate、Name、Type、Size、Url等属性的值。 (10)调用InsertOnSubmit()方法将photo实例插入到Photo表中。 (11)调用db实例的SubmitChanges()方法将上述操作提交到数据库。,27.2.7 我的日志,我的日志由MyLog.aspx页面实现。该页面按照系统默认的分类显示当前登录用户的日志。 1界面设计 在下述程序代码中,MyLog.aspx页面声明了1个DataList控件、1个GridView控件和1个ImageButton控件,它们的ID属性的值分别为dlCategory、gvLog和ibtAdd。dlCategory控件以水平排列方式显示日志的分类,单击某一个分类的链接可以显示该分类下的日志。gvLog控件显示当前分类(dlCategory控件所选择的分类)下的日志。ibtAdd控件显示为“添加”按钮,单击该按钮跳转到添加日志的页面AddLog.aspx。,2初始化 MyLog.aspx页面的初始化功能由Page_Load(object sender, EventArgs e)事件和BindPageData()函数实现,具体步骤如下所示。 (1)Page_Load(object sender, EventArgs e)事件从Session对象中获取当前登录用户的ID值,并保存在userID变量中。 (2)调用BindPageData()方法在dlCategory控件中显示分类,并在gvLog控件显示当前分类下的好友。 (3)创建XiaoneiDB数据库的上下文对象db。 (4)调用Where方法从Category查询数据,并作为dlCategory控件的数据源,同时绑定该控件的数据。 (5)如果dlCategory控件的项数量大于0,则设置第一项为选择项。 (6)使用“db.Log.Where(l = l.CategoryID.Value.ToString() = dlCategory.SelectedValue.ToString();”查询表达式查询当前分类下的日志,并作为gvLog控件的数据源,同时绑定该控件的数据。,3事件设计 用户单击dlCategory控件中每一个分类的链接时,将触发dlCategory控件的ItemCommand事件:dlCategory_ItemCommand(object source,DataListCommandEventArgs e)。具体步骤如下所示。 (1)设置当前项为选择项。 (2)创建XiaoneiDB数据库的上下文对象db。 (3)使用Where方法从Log表中获取数据,并作为gvLog控件的数据源,同时绑定该控件的数据。 用户单击MyLog.aspx页面中的“添加”按钮(ibtAdd控件)时,将触发ibtAdd控件的Click事件:ibtAdd_Click(object sender,ImageClickEventArgs e)。该事件实现跳转到添加日志的页面AddLog.aspx,程序代码如下: protected void ibtAdd_Click(object sender,ImageClickEventArgs e) Response.Redirect(“/Web/AddLog.aspx“); ,27.2.8 添加日志,添加日志由AddLog.aspx页面实现。该页面为用户提供输入日志标题和内容,并提交到数据库的功能。 1界面设计 在下述程序代码中,AddLog.aspx页面声明了1个DropDownList控件、2个TextBox控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论