基于.NET的“企业产品展示与新闻发布系统”设计与实现
2017-04-15牛玉霞任伟
牛玉霞++任伟
摘要:“企业产品展示与新闻发布系统”可以通过后台上传企业产品、发布企业新闻,通过前台页面查看、浏览。其中管理员可以设置产品与新闻分类,浏览、添加、删除、修改企业的产品与新闻详情;普通用户可以浏览产品信息和企业新闻。本文详细阐述了系统的数据库设计、功能模块设计以及系统核心功能的实现,并且阐述了三层架构的设计思想。
关键词:企业产品展示与新闻发布 功能设计 编码实现
中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2016)12-0159-02
本系统的用户分为管理员和普通用户,普通用户可以浏览系统信息,管理员可以设置产品与新闻分类,浏览、添加、删除、修改企业的产品与新闻详情。本系统基于Microsoft Visual Studio开发平台和SQL Server技术,采用三层架构,系高效率、高集成、高安全性的企业信息管理系统。
1 系统开发环境及主要技术
1.1 开发环境
本系统开发使用的操作系统为 Windows7,使用的开发工具为 Microsoft Visual Studio 2010,以Microsoft SQL server 2008 为后台数据库,使用Adobe Photoshop CS3 进行素材加工,使用 Microsoft Office Visio 2003 进行UML 建模。
1.2 系统的技术应用
本系统开发的主要技术如下:
(1)运用微软公司的ASP.NET技术;
(2)采用三层架构,实现对系统框架的搭建,将整个业务应用划分为:表现层 (UI)、业务逻辑层(BLL)、数据访问层 (DAL),使系统具有 “高内聚,低耦合”的特征,更利于系统的开发与维护;
(3)使用OOP思想,实现数据的封装,类的继承和多态,程序更加人性化。
(4)使用ADO.NET技术实现数据库信息操作,使系统对数据库的处理更高效、更安全。
(5)采用工程化的开发方法,使系统更稳定,代码更规范,系统更便于维护。
2 系统设计
2.1 数据库设计
本系统使用Microsoft SQL server 2008作为数据库的设计与开发工具,主要数据表有以下几个:
(1)新闻信息表(News_Info):此表存放新闻基本信息,其结构如表1所示。
(2)产品信息表(Product_Info):此表存放产品基本信息,其结构如表2所示。
(3)产品类别表(ProductType):此表存放产品分类信息,其结构如表3所示。
2.2 功能模块设计
本系统主要功能模块设计如图1所示。
2.3 功能需求分析
2.3.1 用户管理
根据系统的操作权限不同,将系统的使用用户分为普通用户和管理员。普通用户无需注册,可以浏览系统中发布的产品和新闻信息;管理员负责系统的日常维护,通过身份验证后可以对产品和新闻进行浏览和编辑。
2.3.2 产品管理
管理员可以通过系统后台对产品进行添加、删除、修改、查询。
(1)添加产品:即在系统中录入新产品,填写产品信息时作非空判断,如果出现重复信息,则给出提示。添加成功之后,以对话框的形式显示添加结果。
(2)删除产品:企业有些停产或脱销产品,从系统展示位中“下架”,由管理员在系统后台通过删除产品操作实现。
(3)修改產品:管理员在系统后台可以编辑产品,实现对产品属性的修改,比如产品图片、产品名称等。
(4)查询产品:系统前台和后台均支持按产品名称或类别进行查询和浏览。
新闻管理与产品管理功能需求类似,在此不再赘述。
3 系统功能实现
限于篇幅,本文选取了部分核心功能代码。
3.1 管理员用户登录
管理员在后台登录页面输入指定用户名和密码,进行身份验证,具体实现如下:
protected void btnLogin_Click(object sender, EventArgs e)
{
if (txtUserName.Text == "admin" && txtPassword.Text == "admin")
{
Response.Redirect("AdminIndex.aspx");
}
else
{
ShowMessage(this,"账号或密码错误!");
}
}
3.2 产品与新闻管理
产品和新闻的基本信息存放在数据库中,通过对数据表的操作,来实现产品和新闻的增、删、改、查。在.NET页面中访问数据表一般有三个步骤:一是连接数据库;二是对数据表执行相关操作;三是关闭连接。本文以“新增”新闻功能代码为例,来阐述操作数据表。数据访问与业务处理代码如下:
private static string connString =
ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters)
{
using (SqlConnection connection = new SqlConnection(connString))
{
SqlDataReader returnReader;
connection.Open();
SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
command.CommandType = CommandType.StoredProcedure;
returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
return returnReader;
}
}
public int AddNews(NewsModel model)
{
int rowsAffected;
SqlParameter[] parameters = {
new SqlParameter("@newsTitle", SqlDbType.NVarChar,50),
new SqlParameter("@newsPic", SqlDbType.NVarChar,4),
new SqlParameter("@newsContent", SqlDbType.Text,500),
new SqlParameter("@newsDate", SqlDbType.NVarChar,50),
new SqlParameter("@newsLink", SqlDbType.NVarChar,500),
};
parameters[0].Value = model.NewsTitle;
parameters[1].Value = model.NewsPic;
parameters[2].Value = model.NewsCon;
parameters[3].Value = model.NewsDate;
parameters[4].Value = model.NewsLink;
DBHelperSQL.RunProcedure("NewsAdd", parameters, out rowsAffected);
return rowsAffected;
}
表层代码如下:
protected void btnSubmit_Click(object sender, EventArgs e)
{
NewsModel model = new NewsModel();
model.NewsTitle = txtNewsTitle.Text;
model.NewsDate = txtNewsDate.Text;
model.NewsLink = txtLink.Text;
model.NewsCon = txtContent.Text;
int i = nb.AddNews(model);
if (i > 0)
{
ShowAndRedirect(this, "保存成功", "NewsList.aspx");
}
else
{
Response.Redirect("");
}
}
4 结语
该系统的功能设计是在充分调研的基础上形成的,其功能实现采用了分层处理,运行稳定,界面友好,操作简单。对各类企业创建门户网站有一定的参考价值。
参考文献
[1]张海藩.软件工程导论[M].清华大学出版社,2013.
[2]启明工作室.MIS系统开发与应用(C#+SQL Server 版)[M].人民邮电出版社,2009.