数据库应用课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
课程设计报告
( 2012 -- 2013 年度第 1 学期)
名 称: 数据库应用课程设计
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目: 博客管理系统 院 系: 计算机科学与技术学院 班 级: 计算1203班 学 号: 学生姓名: 指导教师: 设计周数: 一周
成 绩:
日期:2013年 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( 系统需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
总体来说,博客的主要功能是为大家发表言论提供一种工具,博客的主人可以在自己的博客上
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
写自己的一些见闻感想,而浏览博客的人则可以对这些文章进行评述,当然他们也可以申请拥有自己的博客。我们的博客系统主要是为那些想享有自己博客的人提供一种环境,建造一个博客的平台。 其中,作为博客管理系统的管理员,可以删除用户,删除文章,以及对用户进行管理。而作为博客系统的用户可以在自己的博客上进行文章的发布、删除、编辑,以及上传文件、图片,发表评论、创建链接和对自己博客界面进行设置。
系统的总体设计图如下:
博客系统
系统管理子系统 用户子系统
删删用文文文评文图创用
除除户章章章论件片建户
用文管发编删发上上链界
户 章 理 布 辑 除 表 传 传 接 面
设
置
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
课程设计报告 下面的活动图显示用户登陆过程:
开始
填写用户名、密码
N 判断用户名密码是提示用户豋入失败 否正确,
Y
储存博客帐信息
进入系统
下面的活动图演示用户注册帐号的基本流程:
开始
填写博客基本信息
检查博客帐号信 提示输入信息不合法 息是否合法
添加博客帐号信
提示注册成功
系统管理员登录后,与一般博客用户登录不同,他进入的是博客帐号管理页面,他要进行的工作
是管理博客帐号并删除不合格的博客帐号,下面的活动图演示的是博客帐号管理的基本流程:
系统管理员登录
列表显示博客帐号信息
删除所选的博客帐号信
息
5 提示操作成功
课程设计报告 用户登录后,都可以对自己的帐号信息及密码进行修改。 下面的活动图就是密码及帐号的修改流程:
开始
修改博客帐户或密码信息
检查博客密码提示输入信息不合法,重新输入
或帐户信息
是否合法
修改数据库中相应的信息
提示修改成功
3(3 文章管理系统设计
在文章管理系统系统中,博客用户可以发布自己喜欢的文章、随笔、个人的感悟等,并把发布的
文章放到特定的分类中,并且,用户还可以查看、编辑、删除已发布的文章。
文章管理的流程图如下:
开始
博客用户登录
进入文章管理界面
选择所要进行的操作
发编查删
表辑看除
新已文发 文有章 布
章 的的
文文
章 章
提示操作完成
6
进入下一步操作
课程设计报告 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 = new
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
课程设计报告
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 = new
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 = new
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
课程设计报告
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 = new
SqlConnection("server=localhost;database=AMS;uid=sa;pwd=ntjschenpo;");
commandCheckFile = new SqlCommand(strCheckFile, connectionFileUpload);
connectionFileUpload.Open();
datareaderCheckFile = commandCheckFile.ExecuteReader();
15
课程设计报告
}
删除文件部分具体代码实现
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) values
(@username,@category,@description)";
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版. 2000年2月
[2] 黄维通, SQL Server 2000简明教材. 清华大学版社, 第1版. 2002年3月
ASP.NET实用教程. 电子工业出版社, 第1版. 2005年3月 [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