茶叶公司网站 - 图文

更新时间:2024-04-03 03:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

茶叶公司网站

姓 名 ** 学 科 专 业 **************** 指 导 老 师 ***

二 零 一零 年 十 二 月

茶叶公司网站

摘 要

随着互联网不断的融入人们的生活,以及WEB 2.0所倡导的“互动 分享 联系”的理念产生,使得每一个网民不只是信息的被动接受者,越来越多的人们开始习惯于写博客、逛论坛、分享视频等一系列WEB2.0应用,这一系列的应用使得我们的网络生活变得多姿多彩起来。

本文主要阐述一个功能相对简单的有限公司系统的实现方法以及一些关键技术。这个有限公司系统的程序部分主要使用ASP.NET(使用C#语言)和SQL数据库技术开发,具有一般公司系统的一些基本功能以及必要的安全措施,能满足一些基本的简单应用,排版部分使用了CSS,网页几乎所有元素的样式属性都写在一个CSS文件当中,使得修改起来简单方便。美工部分则使用了Flash,Photoshop等工具,其强大的功能亦为本公司系统增色不少。作者亦对网站的兼容性做了优化,火狐、傲游、IE 6.0、IE 8.0等主流浏览器均可正常浏览。

关键词:之美茶叶有限公司系统 , ASP.NET , SQL2005 ,软件技术。

概 论

1.1系统功能与开发背景

近年来计算机技术的飞速发展,尤其是计算机网络的发展,越来越多的人开始习惯于在互联网上购买茶叶,广大招商,分享提问等应用。其中有限公司系统作为WEB 2.0中最具代表性的应用渐渐被人们所接受。现在,很多人们开始在网上以网上注册的方式来加盟公司业务。有限公司系统不仅仅是互联网的代表性应用,更是互联网一大资源集散地。本系统是基于ASP.NET与SQL技术开发,实现起来较为简单,提供了发表评论、查看产品、发布新闻、发布商品等功能。 1.2工具及开发平台介绍

Visual C# .NET

Visual C# .NET 是由微软公司所开发的一种面向对象,且运行于.NET Framework之上的高级程序设计语言。并且成为ECMA与ISO标准规范。C#看似基于C++写成,但又融入其它语言如Delphi、Java、VB等。C#并不被编译成为能够直接在计算机上执行的二进制本地代码。与Java类似,它被编译成为中间代码(Microsoft Intermediate Language),然后通过.NET Framework的虚拟机——被称之为通用语言运行庫(Common Language Runtime)——执行。

所有的.Net编程语言都被编译成这种被称为MSIL(Microsoft Intermediate Language )的中间代码。因此虽然最终的程序在表面上仍然与传统意义上的可执行文件都具有“.exe”的后缀名。但是实际上,如果计算机上没有安装.Net Framework,那么这些程序将不能够被执行。 在程序执行时,.Net Framework将中间代码翻译成为二进制机器码,从而使它得到正确的运行。最终的二进制代码被存储在一个缓冲区(Buffer)中。所以一旦程序使用了相同的代码,

- 1 -

那么将会调用缓冲区中的版本。这样如果一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度明显加快。

ASP.NET

ASP.NET是由微软在.NET Framework中所提供的,开发Web应用程序的类库,封装在System.Web.dll文件中,显露出System.Web命名空间,并提供ASP.NET网页处理、扩充以及HTTP通道的应用程序与通信处理等工作,以及Web Service的基础架构。ASP.NET是ASP技术的后继者,但它的发展性要比ASP技术要强大许多。

ASP.NET可以运行在安装了.NET Framework的IIS服务器上,若要在非微软的平台上运行,则需要使用Mono平台,ASP.NET在2.0版本已经定型,在.NET Framework 3.5上则加上了许多功能,像是ASP.NET AJAX、ASP.NET MVC Framework、ASP.NET Dynamic Data与Microsoft Silverlight的服务器控件等。很多人都把 ASP.NET 当做是一种编程语言,但它实际上只是一个由 .NET Framework 提供的一种开发平台 (development platform),并非编程语言。

SQL Server 2005

SQL Server 2005作为微软下一代的数据管理与商业智能平台,SQL Server 2005 将是微软5年来具有里程碑性质的企业级数据库产品。和以往的数据解决方案相比,SQL Server 2005将给您带来空前的价值、超强的功能和激动人心的全新体验。

SQL Server 2005 中包含了非常丰富的新特性:通过提供一个更安全、可靠和高效的数 据管理平台,增强企业组织中用户的管理能力,大幅提升IT管理效率并降低运维风险和成本;通过提供先进的商业智能平台满足众多客户对业务的实时统计分析、监控预测等多种复杂管理需求,推动企业管理信息化建设和业务发展;同时,SQL Server 2005将提供一个极具扩展性和灵活性的开发平台,不断拓展您的应用空间,实现Internet数据业务互联,为您带来新的商业应用机遇。由于大大减少了应用程序宕机时间,提高了系统的可伸缩性和性能,并加以更严格的安全控制,SQL Server 2005在支持现实中最苛刻的企业级系统要求的道路上,迈出了极大的一步。SQL Server是微软服务器家族中重要的一部分,通过微软服务器系列产品共有的Engineering strategy所实现的增强的管理性和集成性,客户可以有效降低总体拥有成本并从更快的开发部署时间中受益。 安全、可靠、高效的企业级数据管理平台。

第二章 系统的概要设计

2.1需求分析

根据有限公司系统的基本需求,本系统主要需要完成以下任务。

?

? 向网站用户显示企业新闻资讯,新闻按时间顺序排列,并进行分页处理 ? 显示新闻详细信息,当需要查看某条新闻时,可以通过单击新闻列表中的新闻主题进入

新闻详细信息进行查看,并且可以发布相应的评论,管理员进行新闻的后台发布、修改、

- 2 -

删除。 ? ? ? ?

2.2 总体设计

2.2.1 系统的主要功能模块划分

进行产品名称、规格、重量、介绍的展示,并进行后台发布和产品信息修改、删除等管理

进行客户姓名、性别、年龄的等信息的主次,并进行后台修改。 对公司产品信息进行提问及回复。

对公司产品信息进行在线投票并显示,进行后台投票选项的添加、修改、删除等管理。

首页

首页是一个网站的门面,也是最重要的一页。人们都将首页作为体现公司形象的重中之重,也是网站所有信心的归类目录或分类缩影。所以首页的美工设计投入比一般比较大,且信息比较集中。

公司介绍

有限公司的主要职能就是展现公司形象,且其中不可或缺的就是公司的介绍功能,再次介绍公司的基本信息。信息一般包括公司文字、图片等。

广大招商

有限公司的主要任务就是能够吸引更多的客户根据自身的要求购买商品,所以根据广大招商吸引网友根据新闻内容加入公司的行列。

产品发布

产品是一个企业的生存基础之一,网站的另一个主要职能就是以图文并茂。方便快捷的方式展现公司的产品信息。产品信息也会根据需要由管理人员在后台实时更新维护。

人力资源

客户是公司生存的另一个基础。人力资源板块负责将客户的名称、联系方式、联系人、公司地址等信息进行注册,并进行后台修改、删除等管理。 在线咨询

公司发布的产品或新闻肯定会有很多的网友发表一些自己的评论或提问,我们将通过提问三到五天的时间内发送到您的电子邮件内,请注意查收。

- 3 -

2.2.2 系统体系结构图

个茶叶公司网站 查看首页查看新闻进行提问查 广大 登陆后台 看产品招商 进 查 行评论看所有评论产品投票 发 回 修 布产品复提问改新闻管理添新加闻新闻 管 理会员

第三章 数据库设计与实现

3.1 数据库的需求分析

茶叶公司网站中综合以上所述的功能要求需要以下几个表:

? ? ? ? ? ?

新闻内容表:存放文章的详细信息。 产品表:存放公司产品信息。 咨询表:存放网友提问信息。

新闻评论表:存放各篇新闻的评论信息。 用户表:存放会员账户信息。 管理员表:存放管理员账户信息。

3.2数据库的逻辑结构设计

(1)新闻内容(news)

记录了新闻的编号,作者名称,新闻标题以及每一个新闻对应的日期,其中nid为主键。

- 4 -

(2)产品表(products)

记录了产品名称、产品编号、规格、重量、简介、图片以及图片,其中以pid为主键。

(3)咨询表(tribune)

记录了会员友情名称、是提问或回复、提问内容、提问日期等内容,其中tid为主键。

(4)新闻评论表(review)

记录了网友对文章的评论,评论者的姓名,以及时间等内容。

(5)用户表(members)

- 5 -

记录了用户的账号名、密码以及权限,其中mid为主键

(5)管理员表(admins)

(5)投票表(vote)

第四章 茶叶公司网站的详细设计与实现

在系统开发中,为了保证其系统的可扩展行和可维护性,通常将需要经常使用的不分成为公司系统的功用模块,系统的公司模块可以被系统中的任何页面或者类库进行调用,当需要进行更改时,可以修改通用模块进行低成本维护。 4.1 创建Css

Css作为页面布局的全局文件,可以进行茶叶公司全聚德布局的样式控制,通过使用Css能够将页面代码和布局代码相分离,这样就能够方便地进行系统样式维护。右击现有项目,在下拉菜单中选择“添加”选项,然后在“添加”选项中单击“新建项”选项以创建Css样式表。

样式表可以统一存放在一个文件夹中,该文件夹能够进行样式表的统一存放和规划,以便系统可以使用不同的样式表。Font.css文件代码如下:

- 6 -

.f9_line0 { }

.f9_line18 { } A { }

A:hover { }

.f9_line12 { } .f24 { }

FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #009999 FONT-SIZE: 9pt; LINE-HEIGHT: 15px

COLOR: #ff6600; TEXT-DECORATION: underline COLOR: #000000; TEXT-DECORATION: none FONT-SIZE: 9pt; LINE-HEIGHT: 18px FONT-SIZE: 9pt

4.2 配置文件web.config

该系统使用ASP.NET和SQL数据库技术开发,两者之间的连接在web.config配置文件中完成,该文件的关键代码如下所示。

4.3主类文件

系统如果使用主类会方便代码的重复 Dband.cs文件代码如下:

using System; using System.Data;

using System.Configuration; 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;

- 7 -

using System.Data.SqlClient;

///

/// DBband 的摘要说明 ///

public class DBband {

public DBband() { }

//

// TODO: 在此处添加构造函数逻辑 //

public SqlConnection GetConnection() {

string mystr =

ConfigurationManager.ConnectionStrings[\].ToString(); SqlConnection mycon = new SqlConnection(mystr); return mycon; }

public int Bind(string sqlstr) {

int i = 0;

SqlConnection mycon = GetConnection();

SqlCommand mycom = new SqlCommand(sqlstr, mycon); try {

mycon.Open();

i= mycom.ExecuteNonQuery(); }

catch (Exception e) {

throw (e); } finally {

mycon.Close(); }

return i; }

public int Return_first(string sqlstr) {

int i = 0;

- 8 -

SqlConnection mycon = GetConnection();

SqlCommand mycom = new SqlCommand(sqlstr, mycon); try {

mycon.Open();

i =Convert.ToInt32( mycom.ExecuteScalar().ToString()); }

catch (Exception e) {

throw (e); } finally {

mycon.Close(); }

return i; }

public DataSet Return_ds(string sqlstr,string table) {

SqlConnection mycon = GetConnection();

SqlDataAdapter myda = new SqlDataAdapter(sqlstr,mycon); DataSet myds = new DataSet(); try {

mycon.Open();

myda.Fill(myds, table); }

catch (Exception e) {

throw (e); } finally {

mycon.Close(); }

return myds; }

public void Dlist_Band(string sqlstr,DataList d_list) {

- 9 -

SqlConnection mycon = GetConnection(); SqlCommand mycom = new SqlCommand(); mycom.Connection = mycon; mycom.CommandText = sqlstr; SqlDataReader mydr; try {

mycon.Open();

mydr = mycom.ExecuteReader(); d_list. DataSource = mydr; d_list .DataBind(); }

catch (Exception e) {

throw (e); } finally {

mycon.Close(); } }

public void Gv_Band(string str,string table ,GridView Gvname) {

SqlConnection mycon = GetConnection();

SqlDataAdapter myda = new SqlDataAdapter(str, mycon);

try {

mycon.Open();

DataSet myds = new DataSet(); myda.Fill(myds, table); Gvname.DataSource = myds; Gvname.DataBind(); }

catch (Exception e) {

throw (e); } finally {

mycon.Close(); } }

- 10 -

public int P_Bind(string str, SqlParameter[] pa) {

int result; result = 0;

SqlConnection mycon = GetConnection(); SqlCommand mycom = new SqlCommand(); try {

mycon.Open();

mycom.Parameters.AddRange(pa);

mycom.Connection = mycon; mycom.CommandText = str;

result = mycom.ExecuteNonQuery();

// =Convert.ToInt32( mycom.ExecuteScalar().ToString());

}

catch (SqlException e) {

throw (e); } finally {

mycom.Parameters.Clear(); mycom.Dispose(); mycon.Close();

}

return result; }

public int P_firstBind(string str, SqlParameter[] pa) {

int result=0;

SqlConnection mycon = GetConnection(); SqlCommand mycom = new SqlCommand();

try {

mycon.Open();

mycom.Parameters.AddRange(pa);

mycom.Connection = mycon; mycom.CommandText = str;

- 11 -

result = Convert.ToInt32(mycom.ExecuteScalar().ToString()); // mycom.ExecuteNonQuery();

}

catch (SqlException e) {

throw (e); } finally {

mycom.Parameters.Clear(); mycom.Dispose(); mycon.Close();

}

return result; } }

- 12 -

第五章 茶叶公司网站前台客户端

茶叶公司网站前台模板(MasterPage.master )

(1) 界面截图

广大招商页面(company.aspx)

(2) 界面截图

- 13 -

效果预览:

添加会员页面(Register.aspx)

(3) 界面截图

- 14 -

效果预览:

(2)功能实现

显示特定分类日志关键代码

public partial class user_Register : System.Web.UI.Page {

DBband db = new DBband();

- 15 -

protected void Page_Load(object sender, EventArgs e) { }

protected void btn_rg_Click(object sender, EventArgs e) {

insert_register(); }

public void insert_register() {

string str = \

(mname,password,sex,truename,city,address,post,phone,email,pubdate) values\ +

\; SqlParameter[] pa = new SqlParameter[10];

pa[0] = new SqlParameter(\, txt_name.Text); pa[1] = new SqlParameter(\, txt_pwd.Text);

pa[2] = new SqlParameter(\, drp_sex.SelectedValue.ToString()); pa[3] = new SqlParameter(\, txt_truename.Text);

pa[4] = new SqlParameter(\, drp_city.SelectedValue.ToString()); pa[5] = new SqlParameter(\, txt_address.Text); pa[6] = new SqlParameter(\, txt_post.Text); pa[7] = new SqlParameter(\, txt_phone.Text); pa[8] = new SqlParameter(\, txt_email.Text); pa[9] = new SqlParameter(\, DateTime.Now); int result = db.P_Bind(str, pa); if (result != 0) {

Response.Write(\注册成功!')\); txt_address.Text = \; txt_email.Text = \; txt_name.Text = \; txt_phone.Text = \; txt_post.Text = \; txt_pwd.Text = \; txt_truename.Text = \; } else

Response.Write(\注册失败!')\); } }

- 16 -

新闻中心(news.aspx)

(4) 界面截图

效果预览:

- 17 -

(2)功能实现

显示特定分类日志关键代码

public partial class user_news : System.Web.UI.Page {

DBband db = new DBband();

protected void Page_Load(object sender, EventArgs e) {

PagerBar1.DataChanged += new EventHandler(PagerBar1_DataChanged); if (!IsPostBack) {

this.PagerBar1.SelectCommand = \; this.PagerBar1.GetData(); } }

void PagerBar1_DataChanged(object sender, EventArgs e) {

DataList1.DataSource = PagerBar1.DataTableResult; DataList1.DataBind(); }

//protected void Band() //{

// string sqlstr=\ // db.Dlist_Band(sqlstr, DataList1); //} }

新闻阅读页(shownews.aspx)

(1)界面截图 页面设计区:

- 18 -

- 19 -

页面效果预览:

(2)功能实现

字符过滤代码用于过滤特殊字符(部分显示) public partial class user_shownews : System.Web.UI.Page {

- 20 -

DBband db = new DBband(); string nid;

protected void Page_Load(object sender, EventArgs e) {

if (!IsPostBack) {

Band(); Band1(); Band2(); } }

protected void Band() {

if (Request.QueryString[\] == null) return; else

nid = Request.QueryString[\].ToString();

string sqlstr = \+nid+\; db.Dlist_Band(sqlstr,DataList1); }

protected void Band1() {

if (Request.QueryString[\] == null) return; else

nid = Request.QueryString[\].ToString();

string sqlstr = \ + nid + \; db.Dlist_Band(sqlstr, dlist_title1); }

protected void Band2() {

if (Request.QueryString[\] == null) return; else

nid = Request.QueryString[\].ToString();

string sqlstr = \ + nid + \; db.Dlist_Band(sqlstr, dlist_review); }

protected void LinkButton1_Click(object sender, EventArgs e) {

Response.Redirect(\); }

protected void btn_OK_Click(object sender, EventArgs e) {

string name;

- 21 -

if (Session[\] == null) name = \匿名好友\;

else name = Session[\].ToString(); if (Request.QueryString[\] == null) return; string nid = Request.QueryString[\];

string sqlstr = \('\+nid+\+name+\+txt_dis.Text+\; int i=db.Bind(sqlstr); if (i != 0) {

Response.Write(\评论成功!')\); txt_dis.Text = \; } } }

公司简介页(company.aspx)

(1)界面截图 页面设计区:

效果预览:

- 22 -

由于此文件只有前台设计,没有代码,故此没有写明出来。

产品信息页(products.aspx)

(1)界面截图 页面设计区:

产品信息效果预览:

- 23 -

(2)功能实现

字符过滤代码用于过滤特殊字符(部分显示) public partial class user_product : System.Web.UI.Page {

DBband db = new DBband();

protected void Page_Load(object sender, EventArgs e) {

DlistBand(); }

protected void DlistBand() {

string sqlstr = \; db.Dlist_Band(sqlstr, DataList1); } }

产品投票页(vote.aspx)

(1)界面截图 页面设计区:

- 24 -

效果预览:

- 25 -

(2)功能实现

字符过滤代码用于过滤特殊字符(部分显示) public partial class user_vote : System.Web.UI.Page {

DBband db = new DBband(); string pid; private int total;

protected void Page_Load(object sender, EventArgs e) {

DlistBand(); Band2(); }

protected void DlistBand() {

if (Request.QueryString[\] == null) return; else

pid = Request.QueryString[\].ToString();

string sqlstr = \+pid+\; db.Dlist_Band(sqlstr, DataList1); }

protected void Band2() {

if (Request.QueryString[\] == null) return; else

pid = Request.QueryString[\].ToString();

string sqlstr = \ + pid + \; db.Gv_Band(sqlstr, \, GridView1); db.Gv_Band(sqlstr, \, GridView2); }

protected void Button1_Click(object sender, EventArgs e) {

for (int i = 0; i < GridView1.Rows.Count; i++) {

CheckBox check = (CheckBox)GridView1.Rows[i].FindControl(\); check.Checked = true; } }

protected void Button2_Click(object sender, EventArgs e) {

for (int i = 0; i < GridView1.Rows.Count; i++)

- 26 -

{

CheckBox check = (CheckBox)GridView1.Rows[i].FindControl(\); if (check.Checked) {

Update(GridView1.Rows[i].Cells[0].Text); } }

set_total();

GridView2.DataBind(); }

protected void Update(String s) {

string sqlstr = \ + s + \; db.Bind(sqlstr); }

protected void set_total() {

total = 0;

SqlConnection conn = new SqlConnection();

conn.ConnectionString = db.GetConnection().ToString(); SqlCommand com = new SqlCommand(); com.Connection = conn;

com.CommandText = \; conn.Open();

SqlDataReader dr; //数据读取 dr = com.ExecuteReader(); while (dr.Read()) {

total += int.Parse(dr[\].ToString()); }

conn.Close();

Label1.Text = \总票数为 \ + total.ToString(); }

public int format(string count) {

if (total > 0)

return Convert.ToInt32(count) * 100 / total; else return 0; } }

- 27 -

咨询中心页(tribune.aspx)

(1) 界面截图

效果预览:

- 28 -

(2)功能实现

public partial class user_review : System.Web.UI.Page {

DBband db = new DBband();

protected void Page_Load(object sender, EventArgs e) {

dlist_bind(); }

protected void dlist_bind() {

string sqlstr = \; db.Dlist_Band(sqlstr, DataList1); }

protected void btn_OK_Click(object sender, EventArgs e) {

if (Session[\] == null) {

Response.Write(\您还没有登录,请登录后继续提问!')\); } else

//{\('\

- 29 -

{

string tname=Session[\].ToString();

string sqlstr = \ + \;

SqlParameter[] pa = new SqlParameter[4]; pa[0] = new SqlParameter(\,tname );

pa[1] = new SqlParameter(\,DropDownList1.SelectedValue.ToString()); pa[2] = new SqlParameter(\,txt_content.Text); pa[3] = new SqlParameter(\, DateTime.Now); int i = db.P_Bind(sqlstr, pa);

if (i != 0) {

Response.Write(\提问成功,在工作日3-5天内给您解答!')\); dlist_bind();

txt_content.Text = \; } } }

}

第六章 茶叶公司后台设计

茶叶公司后台模板(MasterPage2.master )

(1)界面截图

- 30 -

图:友情链接页截图

登陆页面(login.aspx)

(1) 界面截图

图:登陆页截图

(2)功能实现

登陆验证关键代码 public partial class admin_Default : System.Web.UI.Page {

DBband db = new DBband();

protected void Page_Load(object sender, EventArgs e) { }

protected void Button1_Click(object sender, EventArgs e) {

string str= \ + txt_name.Text.Trim() + %upwd='\ + txt_pwd.Text.Trim() + \;

- 31 -

int num = db.Return_first(str); if (num >= 1) {

Label1.Text = \登陆成功\; Session[\] = 1;

Response.Redirect(\); } else {

Label1.Text = \用户名或密码错误\; } } }

添加新闻页面(addnews.aspx)

(1) 界面截图

图:编辑日志页截图

(2)功能实现

登录验证以及读取已发布日志显示在Label中关键代码 public partial class admin_Default2 : System.Web.UI.Page {

DBband db = new DBband();

protected void Page_Load(object sender, EventArgs e)

- 32 -

{

if (Session[\] == null)

Response.Redirect(\); string s = Session[\].ToString(); if (s != \)

Response.Redirect(\); }

protected void btn_OK_Click(object sender, EventArgs e) {

string sqlstr = \('\+txt_autrol.Text+\+txt_title.Text+\+txt_text.Text+\+DateTime.Now+\; int i=db.Bind(sqlstr); if (i != 0) {

Response.Write(\新闻添加成功!')\); } } }

新闻管理页面(updatenews.aspx)

(1)界面截图

(2)功能实现

留言显示代码 public partial class admin_updateNews : System.Web.UI.Page {

- 33 -

DBband db = new DBband(); public int i = 1;

protected void Page_Load(object sender, EventArgs e) {

if (Session[\] == null)

Response.Redirect(\); string s = Session[\].ToString(); if (s != \)

Response.Redirect(\);

PagerBar1.DataChanged += new EventHandler(PagerBar1_DataChanged); if (!IsPostBack) {

this.PagerBar1.SelectCommand = \; this.PagerBar1.GetData(); } }

protected void PagerBar1_DataChanged(object sender, EventArgs e) {

GridView1.DataSource = PagerBar1.DataTableResult; GridView1.DataBind(); }

protected void Gv_bind() {

string sqlstr = \; db.Gv_Band(sqlstr, \, GridView1); }

protected void btn_update_Click(object sender, EventArgs e) {

Button bt = sender as Button;

Response.Redirect(\+bt.CommandArgument); }

protected void btn_delete_Click(object sender, EventArgs e) {

Button bt=sender as Button;

string sqlstr = \ + bt.CommandArgument; int i=db.Bind(sqlstr); if (i != 0) {

Response.Write(\删除成功!')\);

- 34 -

Gv_bind(); } } }

新闻修改页面(update.aspx)

(1)界面截图

图:评论管理页截图

(2) 功能实现

public partial class admin_update : System.Web.UI.Page {

DBband db = new DBband();

protected void Page_Load(object sender, EventArgs e) {

if (Session[\] == null)

Response.Redirect(\); string s = Session[\].ToString(); if (s != \)

Response.Redirect(\); string nid = Request.QueryString[\].ToString(); string sqlstr = \ + nid; Return_dr(sqlstr); }

public void Return_dr(string sqlstr)

- 35 -

{

SqlConnection mycon = db.GetConnection();

SqlCommand mycom = new SqlCommand(sqlstr, mycon); SqlDataReader mydr; try {

mycon.Open();

mydr = mycom.ExecuteReader(); if (mydr.Read()) {

txt_autrol.Text = mydr[\].ToString(); txt_title.Text = mydr[\].ToString(); txt_text.Text = mydr[\].ToString(); }

}

catch (Exception e) {

throw (e); } finally {

mycon.Close(); } }

protected void btn_OK_Click(object sender, EventArgs e) {

string nid = Request.QueryString[\].ToString(); //string sqlstr = \

nautrol=@nautrol,ntitle=@ntitle,ncontent=@ncontent,pubdate=@pubdate where nid=\ //SqlParameter[] pa = new SqlParameter[4];

//pa[0] = new SqlParameter(\ //pa[1] = new SqlParameter(\ //pa[2] = new SqlParameter(\ //pa[3] = new SqlParameter(\

string sqlstr = \ +txt_autrol.Text + \ + txt_title.Text+ \;

sqlstr += txt_text.Text + \ + DateTime.Now + \ + nid + \;

int i = db.Bind(sqlstr);

//int i = db.P_Bind(sqlstr, pa); if (i > 0)

- 36 -

{

Response.Write(\修改成功!')\); } } }

发布产品页面(manage_comments_edit.aspx)

(1)界面截图

图:评论删除页截图

效果预览:

(2)功能实现

protected void btn_OK_Click(object sender, EventArgs e) {

string name = \; if (FileUpload1.HasFile) { try {

string ex_filename =

System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower(); name = DateTime.Now.ToString(\) + ex_filename;

if (ex_filename == \ || ex_filename == \ || ex_filename == \ || ex_filename == \) {

FileUpload1.SaveAs(Server.MapPath(\产品图片/\) + \ + name);

- 37 -

} else {

Response.Write(\这不是图像文件!')\); } }

catch (Exception ex) {

throw (ex); }

} else {

Response.Write(\请选选择要上传的文件!')\); }

button_two(name); }

private void button_two(string name) {

string str = \ + \; SqlParameter[] pa = new SqlParameter[6];

pa[0] = new SqlParameter(\, txt_name.Text); pa[1] = new SqlParameter(\, txt_guige.Text); pa[2] = new SqlParameter(\, txt_weight.Text); pa[3] = new SqlParameter(\, txt_je.Text); pa[4] = new SqlParameter(\, name);

pa[5] = new SqlParameter(\, DateTime.Now); int result = db.P_Bind(str, pa); if (result != 0) {

Response.Write(\发布成功!')\); } else

Response.Write(\发布失败!')\);

}

- 38 -

产品管理页面(manageP.aspx)

(1) 页面截图

(2)代码实现

protected void Page_Load(object sender, EventArgs e)

{

if (Session[\] == null)

Response.Redirect(\); string s = Session[\].ToString(); if (s != \)

Response.Redirect(\); //gv_Bind();

}

这个页面几乎没有编写任何代码,完全是依靠ASP.NET附带的GridView与SqlDataSource控件完美实现功能需要。

使用GridView显示评论内容

以下是GridView自动产生的代码(ASP部分):

- 39 -

HeaderText=\图片\

以下是使用SqlDataSource连接数据库自动产生的关键代码(ASP部分):

ConnectionString=\<%$ ConnectionStrings:TeaConnectionString %>\

DeleteCommand=\

InsertCommand=\INTO [products] ([company], [pname], [guige], [weight], [pubdate], [intro], [photo]) VALUES (@company, @pname, @guige, @weight, @pubdate, @intro, @photo)\ SelectCommand=\ UpdateCommand=\[products] SET [company] = @company, [pname] = @pname, [guige] = @guige, [weight] = @weight, [pubdate] = @pubdate, [intro] = @intro, [photo] = @photo WHERE [pid] = @pid\

- 40 -

会员管理页面

(1)页面截图

这个页面几乎没有编写任何代码,完全是依靠ASP.NET附带的GridView与SqlDataSource控件完美实现功能需要。

使用GridView显示评论内容

以下是GridView自动产生的代码(ASP部分):

- 41 -

以下是使用SqlDataSource连接数据库自动产生的关键代码(ASP部分):

ConnectionString=\<%$ ConnectionStrings:TeaConnectionString %>\

DeleteCommand=\

InsertCommand=\[answers], [phone], [email], [city], [address], [post], [pubdate]) VALUES (@mname, @sex, @password, @trueName, @questions, @answers, @phone, @email, @city, @address, @post, @pubdate)\ SelectCommand=\* FROM [members]\ UpdateCommand=\[members] SET [mname] = @mname, [sex] = @sex, [password] = @password, [trueName] = @trueName, [questions] = @questions, [answers] = @answers, [phone] = @phone, [email] = @email, [city] = @city, [address] = @address, [post] = @post, [pubdate] = @pubdate WHERE [mid] = @mid\

- 42 -

评论管理页面(review.aspx)

(1)页面截图

(2) 代码实现:

- 43 -

提问管理页面(tribune.aspx)

(1) 页面截图

(2) 代码实现:

- 44 -

第七章 结束语

本茶叶公司开发时间大约在一个星期左右,花费如此多的时间一方面是由于本人第一次接触ASP.NET开发,对开发流程不是很熟悉,无法很快速的解决遇到的一些问题,再者由于对安全性和可靠性的一些考虑,致使页面需要不断修改,虽然比较繁琐,但是一定程度上确保了网站的质量。

本博客特性如下:

1. 对于安全性进行了比较详尽的考虑,特别过滤了一些不安全字符。

2. 使用Photoshop以及Flash自由定制的界面相对于其他个人博客而言有一定的优势。 3. 兼容性特别进行了考虑,对于傲游,IE6.0,火狐等主流浏览器均能够正常浏览。 4. 后台部分清楚详尽,易于管理。 5. 留言,评论部分均进行了字数限制和验证码验证,一定程度上阻止了恶意操作行为。

但是本博客系统不得不说也有很多遗憾的地方例如:

1. 出于对安全性的考虑,咨询中心做的相对简单,相对主流公司系统,仅能提出问题,

显得十分简陋。 2. 由于本博客系统采取的分页模式是一次性读取所有数据再进行分页,所以在效能方

面可能稍稍低下了一些。 3. 由于自身限制,对于Ajax等技术没有得到使用,使得页面从技术上来说显得比较陈

旧。 4. 由于时间关系,对于一些错误以及一些安全漏洞可能还没有发现。

致 谢

在设计期间,要特别感谢教授我ASP.NET技术的佘东老师,没有佘老师认真的教学和对问题耐心的解答,这个系统不可能被开发出来。同时也感谢在生活上支持我的父母以及参与网站测试的同学们。

再次感谢! 参考文献:《ASP.NET4权威指南》马伟著 机械工业出版社

- 45 -

《ASP.NET程序设计》 主编:佘东 中国水利水电出版社

《巧学巧用 dreamw CS5 flash cs5 photoshop cs5 制作网页》 人民邮电出版社

- 46 -

本文来源:https://www.bwwdw.com/article/wefr.html

Top