数据库应用课程设计报告第一组、

                               

                                

      哈   密   广播电视大学    计算机信息管理  专业

数据库应用课程设计报告

高校教学管理系统

学        号      1165001450572

姓        名          刘丹

指 导  教 师         涂皆成

设计完成日期     20##年5月30日

一、     选题说明及需求介绍

     高等学校中院系的教务管理员,需要管理所在院系的学生、教师、和课程等基本数据,还需要为学生选课提供服务,记录教师每学期的任课,每学期结束后为学生登录成绩,为学生查询成绩提供方便并提供成绩报表等。

     我们设计实现的教学管理系统,就是为高校教务管理员从人工管理数据的繁杂工作中解脱出来而设计的。使用该系统能管理学生的基本数据,如学号、姓名、性别、出生日期、联系电话和Email等;管理每位任课教师的基本数据,如教师姓名、性别、职称、联系电话、Email和年龄等;管理院系的课程数据,如课程号、课程名称和课程学分等;另外还可以对班级和使用系统的用户进行相应的管理。

二、     数据库设计说明

系统的需求说明在上面已有介绍,下面我们进入数据库设计

的概念设计、逻辑设计阶段和实现阶段。

1、概念设计

通过上面的说明,我们已经知道基本实体有学生、课程、教师和班级。实体之间的联系有1个班级可以有多个学生,每个学生属于1个班级,因此班级和学生之间是1对多的联系;1个学生可以选修多门课,每门课可以由多个学生选修,因此学生和课程之间是多对多的联系;1个教师可以讲授多门课程,每门课程也可由多个教师讲授,教师和课程之间也是多对多的联系。另外,还需要记录学生选课的学期和选修课程后的考试成绩,教师任课的时间(学期名称)和学生入学的时间等数据。

据此分析,得到系统的ER图如附图2-1所示。

2.逻辑设计

根据ER图转换成基本表的思想,即每个实体转换成基本表,多对多的联系转换成基本表,而一对多的联系根据实际需要可以转换或不转换为基本表,按照附图2-1所示的ER图,该系统的基本表应为7个,分别为:

班级表(班号,班级名称)

学生表(学号,姓名,性别,出生日期,联系电话,Email)

课程表(课程号,课程名,学分)

教师表(教师编号,教师姓名,教师性别,职称,联系电话,Email,年龄)

班级学生表(序号,学号,班号,入学年份)

学生选修课程表(选课序号,学号,课程号,选修学期,成绩)

教师任课表(教师任课序号,教师编号,课程号,任课学期)

3.建立数据库和基本表

在ACCESS中建立空的数据库“高校教学管理系统”,然后建立如上所述的基本表,各个基本表的设计视图如附图2-2~附图2-8所示。

附图2-1 高校教学管理系统ER图

附图2-2 “班级表”设计视图

附图2-3“课程表”设计视图

附图2-4“学生表”设计视图

      

附图2-5“教师任课表”设计视图    附图2-6“教师表”设计视图

       附图2-7“学生选修课程表”设计视图附图   2-8“班级学生表”设计视图

4.定义基本表之间的关系

根据前面的分析,定义基本表之间的关系如附图2-9所示。

附图2-9 基本表之间的关系

三.系统的功能模块划分

根据前面说明和分析,我们希望只有教务管理人员和经过授权的用户才能使用该系统,也就是说只有经过系统验证的用户才能进行相关操作,并且系统能对基本数据进行插入、删除、修改和查询等操作,对关联数据也能进行相应的处理,如对班级添加学生,学生选修课程和教师任课等数据进行处理,系统还能够对学生的成绩进行登记、报表和查询等。据此,系统的功能模块设计如附图2-10所示。

附图2-10 系统模块功能图

四、实现过程及完成效果介绍

     1.实现过程简要说明

     实现系统时,首先实现基本数据处理的功能,其中4项功能类似,例如,学生数据的增加、删除和修改都是通过建立窗体向导完成的,设计时插入数据和修改数据通过下级窗体完成。

关联数据处理比基本数据处理稍复杂,例如,班级添加学生,首先由用户选择班级,然后再选择需要添加的学生,不要由用户去输入数据,以免引起数据的不一致性。

学生成绩处理模块中的成绩录入和成绩查询是设计的重点,为方便录入,使用了一些小技巧,这是课本上所没有的。

当各个功能模块完成后,实现主体窗,将功能集中,然后再设计登录窗体,只允许注册用户进入系统。

2.系统实现效果

(1)登录窗体图

附图2-11   系统登录窗体

(2)系统主窗体图

附图2-12  系统主窗体

(3)基本数据处理效果图

附图2-13  教师数据处理窗体

(4)关联数据处理效果图

附图2-14 学生选课窗体运行效果图

(5)学生成绩录入效果图

附图2-15  学生成绩录入窗体运行效果图

(6)学生成绩查询效果图

附图2-16  学生成绩查询窗体

(7)学生成绩报表效果图

附图2-17  学生成绩报表效果图

五、总结(感想与收获)

刚开始做课程设计时,总认为用ACCESS做系统简单,不用做什么准备,另外,我的选题来自己熟悉的高校,以为很快就能很好的完成,其实不然。在设计中,碰到了许多问题,例如,登录成绩时怎样方便教务员操作,成绩查询时如何实现等问题,对这些问题都反复修改了许多次,直到基本满意为止。另外,我的设计尽量通过向导完成,但向导的局限性太大,无法实现一些复杂的功能,因此在其中一些部分只有通过宏和模块来实现。

系统也存在一些小问题,例如,录入成绩时到了最后无法自然提示,删除数据时的提示也是系统本身提供,不是很适合使用者等。

通过此次课程设计,能够真正做出一个小系统,将所学的知识应用到实际中去,心中特别高兴,尽管上课时我们也有做实验,但比较单一,缺少联系性,不能从整体上和实际需要上去考虑问题,有被牵着走的感觉。通过设计还锻炼了我们自己思考、深入学习和解决问题的能力。

六、致谢

感谢同组同学的共同讨论和帮助,感谢指导老师的建议和精心指导。

七、参考资料

1  刘世峰.数据库基础与应用.北京:中央广播电视大学出版社,2003

2  解季萍,徐孝凯.Access上机操作指导. 北京:中央广播电视大学出版社,2003

3  求是科技. Access企业办公系统开发实例导航. 北京:人民邮电出版社,2004

4  史秀璋,林洁梅主编. Access应用技术教程.北京:高等教育出版社,2003

 

第二篇:数据库应用课程设计报告

课程设计报告

( 2012 -- 2013 年度第 1 学期)

名 称: 数据库应用课程设计 题 目: 院 系: 计算机科学与技术学院 班 级: 计算1203班 学 号: 学生姓名: 指导教师: 设计周数: 一周

成 绩:

日期:20xx年 1 月 06 日

课程设计报告

一、课程设计的目的与要求

随着互联网的进一步深入到千家万户,网络已经成为人们获取信息、推销自我主要平台。博客(web log)作为一种网络进化的产物,因其傻瓜式的信息发布方式,内容的多样化及新颖化,被越来越多的人所接受和使用。本次数据库应用课程设计正是基于此出发,其主要任务就是设计一个博客管理系统(即博客网站),旨在为喜欢博客的用户提供一个表现自我,展现自我的平台。本次平台采用Windows2003作为操作系统,使用 Microsoft SQL Server2000搭建数据库,使用Microsoft Visual Studio .Net作为软件开发平台,用C#语言最为编程语言。

并且,通过此次针一具体的数据库应用课题的设计与编程,我们不但掌握了数据库系统应用程序开发与设计的基本方法和一般过程,巩固所学国的理论知识,而且还锻炼了自己的编程能力,培养了团队协作能力,进一步加强和提高软件工程文档的编写能力,为以后在数据库技术领域的学习打下了基础。

二、设计正文

1. 概述

1.1 课题概要

“博客”(Blog或Weblog)一词源于“Web Log(网络日志)”的缩写,是一种十分简易的傻瓜化个人信息发布方式。让任何人都可以像免费电子邮件的注册、写作和发送一样,完成个人网页的创建、发布和更新。本次课程设计的任务就是设计一个博客网站,旨在为喜欢博客的用户提供一个表现自我,展现自我的平台,所有在该网站上通过注册的用户都可以拥有自己的博客。在其中,你可以发表自己喜欢的文章、个人的成长历程、生活点滴,和大家一起分享自己的快乐时光;你可以创建自己喜欢的链接,把自己喜欢的网站推荐给大家;也可以上传自己喜欢的图片、文件和大家一起分享;还可以对别人发表的文章发表自己的评论和看法,让大家充分了解你的思想,更可以以文会友,结识和汇聚朋友,进行深度交流沟通。

1.2 系统目标

1)博客系统具有登陆和注册功能,能够根据用户名区分系统管理员与一般的博客用户.没有登陆

的游客能够阅读在博客用户发表的文章并能够发表跟贴.

2)博客系统应为博客用户提供文章管理的功能,包括发表文章,编辑文章,删除文章等.

3)博客系统应为博客用户提供评论(跟贴)管理功能,包括显示评论发表的时间、评论的内容、

发表评论的用户名以及删除其他用户所发表的评论.

4)博客系统应为博客用户提供链接管理功能, 包括博客用户可以管理自定义的链接,包括发布

新的链接,编辑已有的链接及删除链接。

5) 博客系统应为博客用户提供文件上传功能, 包括博客用户可以上传自己喜欢的文件,下载已

上传的文件,删除已上传的文件的。在该页面中,还可以显示已使用的空间。

1

课程设计报告

6) 博客系统应为博客用户提供文章分类管理功能,包括博客用户可以删除已有的分类、创建新的

分类、编辑已有的分类。

7) 博客系统应为博客用户提供用户管理功能包括修改博客用户的密码、个人的注册信息、修改

自己博客的主标题、副标题以及文章显示的格式。

8)博客系统应为系统管理员提供对博客用户管理功能,包括删除特定用户和文章. 1.3

开发运行环境

1)本次课设使用的操作系统是windows2003 2)使用的建模工具是Rational Rose

3)使用 Microsoft SQL Server2000搭建数据库

4)使用的软件开发平台是Microsoft Visual Studio .Net,用C#语言进行编程 2. 系统需求分析

总体来说,博客的主要功能是为大家发表言论提供一种工具,博客的主人可以在自己的博客上书写自己的一些见闻感想,而浏览博客的人则可以对这些文章进行评述,当然他们也可以申请拥有自己的博客。我们的博客系统主要是为那些想享有自己博客的人提供一种环境,建造一个博客的平台。 其中,作为博客管理系统的管理员,可以删除用户,删除文章,以及对用户进行管理。而作为博客系统的用户可以在自己的博客上进行文章的发布、删除、编辑,以及上传文件、图片,发表评论、创建链接和对自己博客界面进行设置。 系统的总体设计图如下:

数据库应用课程设计报告

2

数据库应用课程设计报告

数据库应用课程设计报告

课程设计报告

3. 详细设计

3.1 数据设计

根据功能设计的要求以及问题域子系统的划分,对于本系统的数据库,可以列出以下数据项和数据结构:

本系统的数据库共分为7个表:

Users表:用户表

? Username: 用户名,varchar型.

? Password: 密码,varchar型.

? Usernick: 昵称,varchar型.

? Useremail:邮箱,varchar型。

? Userquestion:取回密码的问题,varchar型。

? Useranswer:取回密码所需的答案,varchar型。

Links表:连接表

? Id:编号,int型。

? Title:题目,varchar型。

? Description:描述,varchar型。

? Username:用户名,varchar型。

? Linkurl:连接地址,varchar型。

Files表:文件表

? Username:用户名, varchar型。

? Filename: 文件名,varchar型。

? Filetype:文件类型,varchar型。

? Filelength:文件长度,int型。

? Updatetime:更新时间,varchar型。

? Id:编号,int型。

Feedbacks表:意见表

? Articleid:文件编号,int型。

? Readername:读者姓名,varchar型。

? Feedbackcontent:意见内容,varchar型。

? Datatime:意见发表时间,varchar型。

? Id:编号,int型。

? Username:用户(版主)姓名,varchar型。

? Articlename:文件标题,varchar型。

Categories表:类型表

3

课程设计报告

? Username: 用户(版主)姓名,varchar型.

? Category:类型,varchar型。

? Id:编号,int型。

? Description: 具体描述,varchar型。

Blogs表:博客表

? Username:用户(版主)姓名,varchar型.

? Blogtitle:博客的标题, varchar型.

? Notice:公告,varchar型.

? Tag:标识,varchar型.

? Subtitle:子标题,varchar型.

? Id:编号,int型。

? Views:观看的次数,int型。

? Description:描述,varchar型.

Articles表:文章表

? Username:作者,varchar型.

? Id:编号,int型。

? Content:文章内容,varchar型.

? Tag:标识,varchar型.

? Categoryid:类别号,int型。

? Uptime:更新时间,varchar型.

? Title:文章标题,varchar型.

Views:观看次数,int 型。

3.2 帐号管理和验证设计

博客系统为客户提供博客平台,允许用户通过博客平台与博客访问者共享知识和交流思想,这些功能的实现都依赖于博客系统可以标示出用户,确定用户的权限。因此,博克系统必须能够验证用户,防止其他人盗用他人的名义发表内容。为此需要创建和维护用户帐号,并且能够通过帐号正确的标识用户。

博客系统权限策略是这样的,它接受匿名用户的访问,直到用户需要访问特定的资源,或者访问后台管理系统,才要求客户提供密码,进行登陆。为此,我们需要创建一些组件构造用户验证和安全模块。首先要提供登陆画面,后台帐号管理画面和在系统中表示用户的问候语。

4

课程设计报告

下面的活动图显示用户登陆过程:

数据库应用课程设计报告

下面的活动图演示用户注册帐号的基本流程:

数据库应用课程设计报告

系统管理员登录后,与一般博客用户登录不同,他进入的是博客帐号管理页面,他要进行的工作是管理博客帐号并删除不合格的博客帐号,下面的活动图演示的是博客帐号管理的基本流程:

数据库应用课程设计报告

5

课程设计报告

数据库应用课程设计报告

用户登录后,都可以对自己的帐号信息及密码进行修改。

下面的活动图就是密码及帐号的修改流程:

数据库应用课程设计报告

3.3 文章管理系统设计 在文章管理系统系统中,博客用户可以发布自己喜欢的文章、随笔、个人的感悟等,并把发布的文章放到特定的分类中,并且,用户还可以查看、编辑、删除已发布的文章。

文章管理的流程图如下:

课程设计报告

3.4 评论管理系统设计

在评论管理系统中,博客用户可以管理其他用户对自己发布的文章所发表的评论,包括评论发表的时间、评论的内容、发表评论的用户名。并且,博客用户还可以删除其他用户所发表的评论。评论管理系统的流程图如下:

3.5 链接管理系统设计 在链接管理系统中,博客用户可以管理自定义的链接,包括发布新的链接,编辑已有的链接及删除链接。链接管理系统的流程图下:

数据库应用课程设计报告

7

数据库应用课程设计报告

课程设计报告

3.6 文件上传系统设计

在文件上传系统中,博客用户可以上传自己喜欢的文件等。在该页面中,还可以显示已使用的空间。

3.7 文章分类管理设计

在文章功能管理系统中,博客用户可以按自己的喜好给自己发表的文章进行分类。其功能包括删除已有的分类、创建新的分类、编辑已有的分类。文章分类系统的流程图如下:

3.8 博客系统管理页面设计 在博客系统管理页面中,已登陆的博客用户可以选择相应的操作,如文章管理、评论管理、链接管理、文件上传管理。博客系统管理页面把4.2管理内容设计中所包含的各项度集中到一个页面中,一般的博客用户登录后就在该页面上进行对自己的博客进行后台管理。可以说,该页面是整个页面枢纽和核心。

4. 系统具体实现

上面第四部分给出了博客系统的详细设计方法,接下来就详细给出系统的实现方法。

4.1 用户登录功能的实现

用户登录功能是指当用户需要访问特定的资源,或者访问后台管理系统,要求客户提供密码时提供登录。

用户登录的后台关键代码如下:

public void Login(object sender, EventArgs e)

数据库应用课程设计报告

8

课程设计报告

{

SqlConnection connectionUser;

SqlCommand commandUserName;

SqlCommand commandPassword;

string sqlCommandUserName = "SELECT Count(username) FROM users WHERE

username='" + txtUserName.Text.ToString() + "'";

string sqlCommandPassword = "SELECT password FROM users WHERE username='" +

txtUserName.Text.ToString() + "'";

connectionUser =

SqlConnection(@"server=localhost;UID=sa;PWD=ntjschenpo;database=AMS");

connectionUser.Open();

commandUserName = new SqlCommand(sqlCommandUserName, connectionUser); if (commandUserName.ExecuteScalar().ToString() != "0")

{

commandPassword = new SqlCommand(sqlCommandPassword, connectionUser); if (txtPassword.Text.ToString().Trim()

commandPassword.ExecuteScalar().ToString().Trim())

{

if (txtCheckCode.Text.ToLower().ToString().Trim()

Session["sessionCheckCode"].ToString().Trim())

{

Session.Remove("sessionCheckCode");

Session["sessionUserName"] = txtUserName.Text.ToString().Trim();

Response.Redirect("~/admin/Default.aspx");

}

else

{

tabLoginInfo.CssClass = "LoginInfoRed";

labLoginMsg.Text = "The checkcode is wrong!";

txtCheckCode.Focus();

}

}

else

{

tabLoginInfo.CssClass = "LoginInfoRed";

labLoginMsg.Text = "The password is wrong!";

txtPassword.Focus();

}

connectionUser.Close();

}

else

{

connectionUser.Close();

tabLoginInfo.CssClass = "LoginInfoRed";

labLoginMsg.Text = "The username does not exit!";

txtUserName.Focus();

}

9 new == ==

课程设计报告

connectionUser.Close();

}

运行效果截图如下:

4.2 文章管理功能的实现

文章管理功能包括文章的发布、编辑及删除已发布的文章。

其关键的后台代码如下

删除已发布的文章关键代码实现:

public void DeleteArticle(object sender, CommandEventArgs e)

{

SqlConnection connectionToServer;

SqlCommand commandToServer;

SqlCommand commandDeleteFeedbacks;

string articleID = e.CommandArgument.ToString().Trim();

string sqlSentence = "Delete articles where id=" + articleID;

string sqlDeleteFeedbacks = "DELETE feedbacks WHERE articleID=" + articleID;

connectionToServer=newSqlConnection("server=localhost;database=AMS;uid=sa;password=

ntjschenpo; ");

commandToServer = new SqlCommand(sqlSentence, connectionToServer);

commandDeleteFeedbacks = new SqlCommand(sqlDeleteFeedbacks, connectionToServer); connectionToServer.Open();

commandToServer.ExecuteNonQuery();

commandDeleteFeedbacks.ExecuteNonQuery();

connectionToServer.Close();

Response.Redirect("Default.aspx");

}

发布新文章部分代码实现

public void CreateNewArticle(object sender,EventArgs e)

{

数据库应用课程设计报告

SqlConnection connectionToServer;

10

课程设计报告

SqlCommand commandToServer;

string sqlSentence = "INSERT articles(title,tag,content,categoryID,username,uptime)

VALUES(@title,@tag,@content,@categoryID,@username,@uptime)";

connectionToServer = new

SqlConnection("server=localhost;database=AMS;uid=sa;password=ntjschenpo;");

commandToServer = new SqlCommand(sqlSentence, connectionToServer);

commandToServer.Parameters.Add("@title", @txtTitle.Text.ToString().Trim());

commandToServer.Parameters.Add("@tag", @txtTag.Text.ToString().Trim());

commandToServer.Parameters.Add("@content", @txtContent.Value.ToString().Trim());

for (int i = 0; i < rdblCategories.Items.Count; i++)

{

if (rdblCategories.Items[i].Selected == true &&

rdblCategories.SelectedItem.Text.ToString().Trim() != "None")

{

categoryID = Convert.ToInt32(rdblCategories.SelectedItem.Value); break;

}

else

{

categoryID = 0;

}

}

commandToServer.Parameters.Add("@categoryID", categoryID);

commandToServer.Parameters.Add("@username",Session["sessionUserName"]);

commandToServer.Parameters.Add("@uptime",System.DateTime.Now);

connectionToServer.Open();

commandToServer.ExecuteNonQuery();

connectionToServer.Close();

Response.Redirect("Default.aspx");

}

编辑已发布的文章部分代码实现:

public void UpdateArticle(object sender, CommandEventArgs e)

{

string id = e.CommandArgument.ToString().Trim();

SqlConnection connectionUpdate;

SqlCommand commandUpdate;

string sqlUpdate = "UPDATE articles SET title=@title, tag=@tag,content=@content,

categoryID=@categoryID,uptime=@time WHERE id=" + id;

connectionUpdate = new SqlConnection("server=localhost;uid=sa;pwd=ntjschenpo;database=AMS");

commandUpdate = new SqlCommand(sqlUpdate, connectionUpdate);

commandUpdate.Parameters.Add("@title", @txtTitle.Text.ToString().Trim());

commandUpdate.Parameters.Add("@tag", @txtTag.Text.ToString().Trim());

commandUpdate.Parameters.Add("@content", @txtContent.Value.ToString().Trim());

for (int i = 0; i < rdblCategories.Items.Count; i++)

{

if (rdblCategories.Items[i].Selected == true &&

rdblCategories.SelectedItem.Text.ToString().Trim() != "None")

{

11

课程设计报告

categoryID = Convert.ToInt32(rdblCategories.SelectedItem.Value); break;

}

else

{

categoryID = 0;

}

}

commandUpdate.Parameters.Add("@categoryID", categoryID);

commandUpdate.Parameters.Add("@time", System.DateTime.Now);

connectionUpdate.Open();

commandUpdate.ExecuteNonQuery();

connectionUpdate.Close();

butUpdate.CommandArgument = id;

Response.Redirect("Default.aspx");

}

运行效果截图如下:

4.3 评论(跟贴)管理功能的实现

评论管理功能包括显示评论发表的时间、评论的内容、发表评论的用户名以及删除其他用户所发表的评论。其关键的后台代码如下:

删除特定的评论部分代码实现:

public void dagFeedbackList_Delete(object sender, DataGridCommandEventArgs e)

{

SqlConnection connectionDeleteFeedback;

SqlCommand commandDeleteFeedback;

string strDeleteFeedback;

strDeleteFeedback = "DELETE feedbacks WHERE id='" + e.Item.Cells[0].Text + "'";

connectionDeleteFeedback = new SqlConnection("server=localhost; database=AMS;

uid=sa;pwd=ntjschenpo");

connectionDeleteFeedback.Open();

commandDeleteFeedback = new SqlCommand(strDeleteFeedback, connectionDeleteFeedback); commandDeleteFeedback.ExecuteNonQuery();

数据库应用课程设计报告

connectionDeleteFeedback.Close();

12

课程设计报告

FeedbackList(strSort);

}

查找特定文章的跟贴部分代码实现:

protected void SearchFeedback(object sender, EventArgs e)

{

SqlConnection connectionSearchFeedback;

SqlDataAdapter dadSearchFeedback;

DataSet dstSearchFeedback;

string strSearchFeedback = "";

if (drpSearchContent.SelectedValue == "1")

{

strSearchFeedback = "SELECT * FROM feedbacks,articles WHERE feedbacks.username='" +

Session["sessionUserName"] + "' AND feedbacks.articleID=articles.id AND

articles.username='" + Session["sessionUserName"] + "' AND articletitle like '%" +

txtSearchFeedback.Text.ToString().Trim() + "%'";

}

else if (drpSearchContent.SelectedValue == "2")

{

strSearchFeedback = "SELECT * FROM feedbacks,articles WHERE feedbacks.username='" +

Session["sessionUserName"] + "' AND feedbacks.articleID=articles.id AND

articles.username='" + Session["sessionUserName"] + "' AND readername like '%" +

txtSearchFeedback.Text.ToString().Trim() + "%'";

}

else if (drpSearchContent.SelectedValue == "3")

{

strSearchFeedback = "SELECT * FROM feedbacks,articles WHERE feedbacks.username='" +

Session["sessionUserName"] + "' AND feedbacks.articleID=articles.id AND

articles.username='" + Session["sessionUserName"] + "' AND feedbackcontent like '%" +

txtSearchFeedback.Text.ToString().Trim() + "%'";

}

connectionSearchFeedback = new

SqlConnection("server=localhost;database=AMS;uid=sa;pwd=ntjschenpo");

dadSearchFeedback = new SqlDataAdapter(strSearchFeedback, connectionSearchFeedback); dstSearchFeedback = new DataSet();

dadSearchFeedback.Fill(dstSearchFeedback);

dagFeedbackList.DataSource = dstSearchFeedback;

dagFeedbackList.DataBind();

}

运行效果截图如下:

13

课程设计报告

4.4 链接管理功能的实现

在链接管理系统的主要功能包括博客用户可以管理自定义的链接,包括发布新的链接,编辑已有的链接及删除链接。其关键的后台代码如下:

创建新链接部分代码实现:

protected void addNewLink(object sender, EventArgs e)

{

SqlConnection connectionAddNewLink;

SqlCommand commandAddNewLink;

string strAddNewLink;

strAddNewLink = "INSERT links(title,description,linkURL,username)

VALUES(@title,@description,@linkURL,@username)";

connectionAddNewLink =

SqlConnection("server=localhost;database=AMS;uid=sa;pwd=ntjschenpo");

commandAddNewLink = new SqlCommand(strAddNewLink, connectionAddNewLink);

commandAddNewLink.Parameters.Add("@title", txtLinkTitle.Text.ToString().Trim());

commandAddNewLink.Parameters.Add("@description", txtDescription.Text.ToString().Trim()); commandAddNewLink.Parameters.Add("@linkURL",txtURL.Text.ToString().Trim());

commandAddNewLink.Parameters.Add("@username",Session["sessionUserName"]);

connectionAddNewLink.Open();

commandAddNewLink.ExecuteNonQuery();

connectionAddNewLink.Close();

Response.Redirect("EditLinks.aspx");

}

编辑已有链接部分 代码实现

protected void dlstLinkList_UpdateCommand(object sender, DataListCommandEventArgs e)

{

string strID = e.CommandArgument.ToString().Trim();

TextBox txtEditTitle = (TextBox)e.Item.FindControl("txtEditLinkTitle");

TextBox txtEditDescription = (TextBox)e.Item.FindControl("txtEditDescription");

TextBox txtEditURL = (TextBox)e.Item.FindControl("txtEditURL");

SqlConnection connectionUpdateLink;

SqlCommand commandUpdateLink;

string strUpdateLink;

strUpdateLink = "UPDATE links SET title=@title,description=@description,linkURL=@linkURL

WHERE username='" + Session["sessionUserName"] + "' AND id=" + strID;

connectionUpdateLink =

SqlConnection("server=localhost;database=AMS;uid=sa;pwd=ntjschenpo");

commandUpdateLink = new SqlCommand(strUpdateLink,connectionUpdateLink);

commandUpdateLink.Parameters.Add("@title",txtEditTitle.Text.ToString().Trim());

commandUpdateLink.Parameters.Add("@description",txtEditDescription.Text.ToString().Trim()); commandUpdateLink.Parameters.Add("@linkURL",txtEditURL.Text.ToString().Trim());

connectionUpdateLink.Open();

commandUpdateLink.ExecuteNonQuery();

connectionUpdateLink.Close();

dlstLinkList.EditItemIndex = -1;

panAddNew.Visible = true;

14 new new

课程设计报告

LinkList();

}

删除已有链接部分 代码实现:

protected void dlstLinkList_DeleteCommand(object sender, DataListCommandEventArgs e)

{

string strID = e.CommandArgument.ToString().Trim();

SqlConnection connectionDeleteLink;

SqlCommand commandDeleteLink;

string strDeleteLink;

strDeleteLink = "DELETE links WHERE username='" + Session["sessionUserName"] + "' AND

id=" + strID;

connectionDeleteLink = new

SqlConnection("server=localhost;database=AMS;uid=sa;pwd=ntjschenpo");

commandDeleteLink = new SqlCommand(strDeleteLink, connectionDeleteLink);

connectionDeleteLink.Open();

commandDeleteLink.ExecuteNonQuery();

connectionDeleteLink.Close();

LinkList();

}

运行效果截图如下:

4.5 文件上传功能的实现

在文件上传系统的功能包括博客用户可以上传自己喜欢的文件,下载已上传的文件,删除已上传的文件的。在该页面中,还可以显示已使用的空间。其关键的后台代码如下:

上传文件部分具体代码实现

public void FileUpload(object sender, EventArgs e)

{

string strFilePath = "C:\\uploadfile\\" + inpFile.PostedFile.FileName;

string strContentType = inpFile.PostedFile.ContentType;

inpFile.PostedFile.SaveAs(strFilePath);

strCheckFile = "SELECT filename FROM files WHERE username='"

Session["sessionUserName"] + "' AND filename='" + inpFile.PostedFile.FileName + "'";

connectionFileUpload =

SqlConnection("server=localhost;database=AMS;uid=sa;pwd=ntjschenpo;");

commandCheckFile = new SqlCommand(strCheckFile, connectionFileUpload);

connectionFileUpload.Open();

数据库应用课程设计报告

datareaderCheckFile = commandCheckFile.ExecuteReader();

15 + new

课程设计报告

}

删除文件部分具体代码实现

public void DeleteFile(object sender, CommandEventArgs e)

{

strDeleteFile = "DELETE files WHERE username='" + Session["sessionUserName"] + "' AND

id='" + strFileID + "'";

strDeleteLocalFile = "SELECT filename FROM files WHERE username='" +

Session["sessionUserName"] + "' AND id='" + strFileID + "'";

connectionDeleteFile = new

SqlConnection("server=localhost;database=AMS;uid=sa;pwd=ntjschenpo;");

commandDeleteFile = new SqlCommand(strDeleteFile, connectionDeleteFile);

commandDeleteLocalFile = new SqlCommand(strDeleteLocalFile, connectionDeleteFile); connectionDeleteFile.Open();

System.IO.File.Delete("D:\\My Documents\\Visual Studio 2005\\WebSites\\AMS\\uploadfiles\\" +

commandDeleteLocalFile.ExecuteScalar());

commandDeleteFile.ExecuteNonQuery();

connectionDeleteFile.Close();

Response.Redirect("UpLoadFile.aspx");

}

下载文件部分具体代码实现

public voi d DownloadFile(object sender, CommandEventArgs e)

{

string strID = e.CommandArgument.ToString().Trim();

string strURL = "~/uploadfiles/" + strID;

Response.Redirect(strURL);

}

运行效果截图如下:

4.6 文章分类管理功能的实现

在文章功能管理系统的功能包括博客用户可以删除已有的分类、创建新的分类、编辑已有的分类。其关键的后台代码如下:

增加新的文章能够分类:

protected void addNewCategory(object sender, EventArgs e)

{

string strconnection = "server=localhost;database=AMS;uid=sa;password=ntjschenpo;";

数据库应用课程设计报告

SqlConnection conn = new SqlConnection(strconnection);

16

课程设计报告

string straddnew = "INSERT categories

(@username,@category,@description)"; (username,category,description) values

SqlCommand cmdAddNewCategory = new SqlCommand(straddnew, conn);

cmdAddNewCategory.Parameters.Add("@username", Session["sessionUserName"]);

cmdAddNewCategory.Parameters.Add("@category", txtCategorieTitle.Text.ToString().Trim()); cmdAddNewCategory.Parameters.Add("description",

txtCategorieDescription.Text.ToString().Trim());

conn.Open();

}

查看已有的文章分类:

public void ViewCategoriesList()

{

string strconnection = "server=localhost;database=AMS;uid=sa;password=ntjschenpo;";

SqlConnection conn = new SqlConnection(strconnection);

string strCategoriesList = "select * from categories where username='" +

Session["sessionUserName"].ToString().Trim() + "'";

SqlCommand cmdCategoriesList = new SqlCommand(strCategoriesList, conn);

SqlCommand cmdCategories = new SqlCommand(strCategoriesList, conn);

conn.Open();

SqlDataReader dtrCategories = cmdCategories.ExecuteReader();

dlstCategories.DataSource = dtrCategories;

dlstCategories.DataBind();

dtrCategories.Close();

conn.Close();

}

编辑已有的分类:

protected void dlstCategories_DeleteCommand(object sender, DataListCommandEventArgs e) {

string strconnection = "server=localhost;database=AMS;uid=sa;password=ntjschenpo;";

SqlConnection conn = new SqlConnection(strconnection);

string strDeleteCategory = "Delete categories where username='" + Session["sessionUserName"] +

"' and id='" + strCategoryID + "'";

string strDeleteArticleCategoryID = "UPDATE articles SET categoryID=0 WHERE username='" +

Session["sessionUserName"] + "' and categoryID='" + strCategoryID + "'";

SqlCommand cmdDeleteCategory = new SqlCommand(strDeleteCategory, conn);

SqlCommand cmdDeleteArticleCategoryID = new SqlCommand(strDeleteArticleCategoryID, conn);

conn.Open();

cmdDeleteArticleCategoryID.ExecuteNonQuery();

cmdDeleteCategory.ExecuteNonQuery();

conn.Close();

}

删除已有的分类:

protected void dlstCategories_UpdateCommand(object sender, DataListCommandEventArgs e) {

string strconnection = "server=localhost;database=AMS;uid=sa;password=ntjschenpo;";

17

课程设计报告

SqlConnection conn = new SqlConnection(strconnection);

string strUpdateCategory = "UPDATE categories SET category=@category where username='" +

Session["sessionUserName"] + "' and id='" + strCategoryID + "'";

SqlCommand cmdUpdateCategory = new SqlCommand(strUpdateCategory, conn);

cmdUpdateCategory.Parameters.Add("@category", txtTitle.Text.ToString().Trim());

}

运行效果截图如下:

4.7 博客系统管理页面的实现

在博客系统管理页面中,已登陆的博客用户可以选择相应的操作,如文章管理、评论管理、链接管理、文件上传管理。博客系统管理页面把4.2管理内容设计中所包含的各项度集中到一个页面中,一般的博客用户登录后就在该页面上进行对自己的博客进行后台管理。可以说,该页面是整个页面枢纽和核心。

其运行效果如下:

数据库应用课程设计报告

18

课程设计报告

三、课程设计总结或结论

通过此次数据库的课程设计练,我们练习了数据库系统的安装与设置以及数据库应用程序开发工具的安装。并且根据具体的课题——博客管理系统——进行了需求分析,并对数据库应用系统进行了逻辑设计及创建数据库、数据表,并且利用当前主流的编程开发工具.net和C#语言,按照软件工程的基本要求来进行设计和系统的开发,实现了当前主流博客的基本功能。而且,通过此次课程设计,学习和实践了在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识,进一步加强和提高了对软件工程文档的编写能力,还培养了协作能力和团队精神。

四、参考文献

[1] 萨师煊,王珊?数据库系统概论. 高等教育出版社, 第3版. 20xx年2月

[2] 黄维通? SQL Server 2000简明教材. 清华大学版社, 第1版. 20xx年3月

[3] 郑阿奇,顾韵华? ASP.NET实用教程. 电子工业出版社, 第1版. 20xx年3月

[4] Stephen Walther,汤涛.中国电力出版社,第二版.2004

[5] 张海藩.人民邮电出版社,第一版.2003

[6] 张海藩,牟永敏.面向对象程序设计实用教程.清华大学出版社,第三版.2001

[7] Roger S.Schach.Software Engineering——A Practitioner’s Approach, Fourth Edition,1997

[8] 蒋慧.UML设计核心技术.北京希望电子出版社,2001

[9] Ryan Asleson,Nathaniel T.Schutta,金灵.Ajax基础教程.人民邮电出版社,2006

[10] NicholasC.Zakas,Jeremy McPeak,Joe Fawcett,徐锋.Ajax高级程序设计,2006

19

相关推荐