




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附件8:毕业设计(论文)题目:金米兰咖啡企业网站的设计与实现系部:信息技术系专业:计算机网络技术学号: 学生姓名: 导师姓名:导师职称: 教师二一五年 一月TOC o 1-3 h u HYPERLINK l _Toc15528 摘 要 PAGEREF _Toc15528 4 HYPERLINK l _Toc3327 引言 PAGEREF _Toc3327 4 HYPERLINK l _Toc11125 第一章 绪论 PAGEREF _Toc11125 5 HYPERLINK l _Toc23188 PAGEREF _Toc23188 5 HYPERLINK l _Toc17117 1.2 构架
2、系统 PAGEREF _Toc17117 5 HYPERLINK l _Toc10628 第二章 可行性分析 PAGEREF _Toc10628 8 HYPERLINK l _Toc21950 PAGEREF _Toc21950 8 HYPERLINK l _Toc13424 PAGEREF _Toc13424 8 HYPERLINK l _Toc8812 第三章 动态网站的开发技术及其实现 PAGEREF _Toc8812 9 HYPERLINK l _Toc23984 PAGEREF _Toc23984 9 HYPERLINK l _Toc29161 PAGEREF _Toc29161 1
3、1 HYPERLINK l _Toc8741 网站建设的市场背景 PAGEREF _Toc8741 11 HYPERLINK l _Toc19948 PAGEREF _Toc19948 11 HYPERLINK l _Toc27724 PAGEREF _Toc27724 11 HYPERLINK l _Toc9986 第四章 动态网站的总体模块设计 PAGEREF _Toc9986 12 HYPERLINK l _Toc8832 前台功能模块总体设计 PAGEREF _Toc8832 12 HYPERLINK l _Toc26263 后台功能模块总体设计 PAGEREF _Toc26263 1
4、2 HYPERLINK l _Toc2640 数据库模块总体设计 PAGEREF _Toc2640 13 HYPERLINK l _Toc21535 第五章 三层架构代码实现及页面展示 PAGEREF _Toc21535 16 HYPERLINK l _Toc2289 模型层 PAGEREF _Toc2289 16 HYPERLINK l _Toc13346 5.2 数据访问层 PAGEREF _Toc13346 18 HYPERLINK l _Toc15169 业务逻辑层 PAGEREF _Toc15169 27 HYPERLINK l _Toc11520 5.4 表示层 PAGEREF _
5、Toc11520 29 HYPERLINK l _Toc20957 PAGEREF _Toc20957 29 HYPERLINK l _Toc18584 PAGEREF _Toc18584 44 HYPERLINK l _Toc2595 结论 PAGEREF _Toc2595 52 HYPERLINK l _Toc29580 参考文献 PAGEREF _Toc29580 52摘 要随着互联网的飞速发展,电脑网络已应用到各个领域,普及到千家万户,无论国内还是国外都迅速的发展起来。现在,网络已经成为人们快速获取信息、发布信息和传输信息的主要渠道,成为每个人生活中的一部分,同时网络也提供了一个很好的
6、信息交换平台。本文讲解了一个公司的网站的建设,它基于数据关联的公司个性化页面及动态数据生成案例,在网页方面,综合考虑了页面色彩、页面的构架,充分的利用了图片、文字、图层、表格等元素。网站内容明确,层次清楚,达到了预期的功能。本系统从中小企业的实际需求出发,以ASP.NET为开发技术,Visual Studio 2010为开发工具,SQL Server 2008为数据库开发平台,设计过程中,首先建立了系统的应用原型,然后在此基础上进行需求分析,详细设计时不断修正和完善,经过测试阶段反复调试和验证,最终形成达到设计要求的可行系统。关键字: 网站 动态 ASP.NET 数据库SQL引言随着网络的普遍
7、应用和企业对网络的重视,越来越多的企业已经意识到网络营销的重要性。企业应用型网站除了构建企业的网络形象,更重视将企业的日常业务延伸到互联网,通过网络进一步拓宽网络营销渠道,在这一点上,网站充分利用了互联网的媒体优势,使网络营销与传统营销有效结合。拥有一个网站,我们的企业就可以向访问者提供24小时365天无间断的完美服务。为了让我们的企业可以充分利用网络。本系统实现了企业在线宣传的目的,以减轻企业宣传的工作负担及提高工作效率,并能激发浏览用户的深入了解兴趣。本系统主要是利用浏览器作为界面,利用B/S模式,即用户可利用浏览器直接访问本站点。主要用到的技术是采用ASP.NET(C)技术和SQL数据库
8、设计出了各种功能。本系统主要有用户管理、新闻系统、留言系统、管理员登录及管理等功能。本文主要介绍系统的总体设计以及着重研究了导航板块的实现,并在此基础上建立了后台数据库。本系统采用左右框架式,看起来清爽简洁。登录系统主要实现用户和管理员的交流,用户管理可以提供查看产品以及修改信息等基本功能;导航栏提供整个平台的架构。第一章 绪论在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下
9、载下来。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。 网络在现代生活中日益盛行,越来越多的人对此也极为痴迷,随着网络技术的迅猛发展, 当代企业纷纷建立自己的网站,借助于互联网扩大自己的影响、推广自己的产品,同时通过互联网快速的信息传递加速自身的发展。我将一个咖啡网站作为我的设计项目北京金米兰咖啡网站1.2 构架系统 N层架构每一层都可以在仅仅更改很少量的代码后,就能放到物理上不同的服务器上使用,因此结构灵活而且性能更佳。此外,每层做些什么其它层是完全看不到的,因此更改、更新某层,都不再需要重新编译或者更改全部的层了
10、。这是个很强大的功能。例如,如果把数据访问代码与业务逻辑层分离,当数据库服务器更改后,你只需要更改数据访问的代码,因为业务逻辑层是不变的,因此不需要更改或者重新编译业务逻辑层。一个N层3的应用程序通常有三层:表现层、业务层和数据层。下面让我们看看每层都做些什么。表现层(Presentation Layer)表现层用于用户接口的展示,以及用业务层的类和对象来“驱动”这些接口。在中,该层包括aspx页面、用户控制、服务器控制以及某些与安全相关的类和对象。业务层(Business Tier)业务层用于访问数据层,从数据层取数据、修改数据以及删除数据,并将结果返回给表现层。在中,该层包括使用SqlCl
11、ient或OleDb从SQL Server或Access数据库取数据、更新数据及删除数据,并把取得的数据放到DataReader或DataSet中返回给表现层。返回的数据也许只有一个整型数字,比如一个表的行记录数目,但这也要用数据层的数据进行计算。BLL和DAL通常该层被划分成两个子层:业务逻辑层(Business Logic Layer,BLL)和数据访问层(Data Access Layers,DAL)。业务逻辑层在数据访问层之上,也就是说BLL调用DAL的类和对象。DAL访问数据并将其转给BLL。在中,该层可以用SqlClient或OleDb从SQL Server或Access数据库取数
12、据,把数据通过DataSet 或DataReader的形式给BLL,BLL处理数据给表现层。有的时候,例如直接把DataSet 或DataReader送给表现层的时候,BLL是一个透明层。数据层(Data Tier)数据层是数据库或者数据源。在.NET中,通常它是一个SQL Server或Access数据库,但不仅限于此两种形式,它还可能是Oracle,mySQL,甚至是XML。逻辑层VS(分布式)物理层人们容易将这两个概念搞混。我们说逻辑层是把层按类的集合来划分,而这些层都在同一台个服务器上。(分布式)物理层是指类的集合在不同的服务器上,用附加的代码来处理层间的通信,比如remoting和w
13、eb服务。ASP.NET的优势:增强的性能。ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。世界级的工具支持。ASP.NET 框架补充了 Visual Studio 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。威力和灵活性。由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET 框架类库、消息处理和数据访问解决方案都可
14、从 Web 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。简易性。ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。可管理性。ASP.NET 采用基于文本的分层配置系统,简化了将设置
15、应用于服务器环境和 Web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此零本地管理哲学也扩展到了 ASP.NET 框架应用程序的部署。只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。可缩放性和可用性。ASP.NET 在设计时考虑了可缩放性4,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。自定义性和
16、扩展性。ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级别插入代码。实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。安全性。借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。第二章 可行性分析硬件、软件要求不高,目前市场上的一般计算机硬件资源均能满足系统开发要求。其中运用的主要软件有Visual studio.NET 2010,photoshop,SQL server等,数据库采用SQLserver2008。采用ASP.NET技术,该技术功能强大,扩展性强
17、,并结合vbscript,javascript以及sql等脚本语言,以上技术足以完成本系统的开发和设计。 在国外,特别是在美国,实施企业战略不只是空谈,它已经被列入了许多大企业的日程表中。与国外的热闹场面相比,国内了解企业概念的企业十分少,而计划建立企业的企业就更加微乎其微。但是应该看到,互联网在国内的发展速度相当迅速,企业网站作为一种新的形象传播途径,同传统媒介相比,对大众更具有亲和力与吸引力,可以帮助企业与消费者建立更亲密、更稳固的联系。企业网站有很多作用: 一、拥有企业自己的域名,建立企业自己的网站,树立企业在科技信息时代的完美形象。作为第四媒体的互联网,其特点就是可以跨越时空,正常情况
18、下, 网站无时无刻 不在工作通过企业的网站,用户可以跨越时空了解企业,利用多媒体技术,企业可以 向用户展示产品、技术、经营理念、企业文化、企业形象,树立现代企业形象,增值 企业无形资产。 二、宣传企业,创造销售机会据调查,有超过30%的人是通过上网查询企业的 和地址的,这一比例和通过114查询的比例相接近,可见企业网站已成为许多人首次接触企业、了解相关信息的选择。 三、加强客户沟通宣传企业产品企业可以通过网站建立与客户沟通的便捷渠道,全面展示企业的所有产品。网络科技足以令您的产品与品牌形象更加立体地呈现在用户面前,就算企业仅仅把网站当成电子宣传册来使用,也较传统的宣传模式更加的多姿多彩、更加地
19、易于发布与传播、更加的经济与环保。 四、丰富营销手段,扩大产品销售渠道企业网站可以满足一部分客户网上查询与采购的需要,抓住网络商机。企业通过网站可以开展电子营销。首先,电子营销作为传统营销的补充;其次, 电子营销可以拓展新的空间,增加销售渠道,接触更大的消费群体,获得更多的新顾 客,扩大市场;再次,电子营销可以减少环节,减少人员,节约费用,降低成本,有利于提高营销效率。 五、有利于了解顾客的意见,掌握顾客的需求在不干扰顾客正常工作和生活的条件下,企业通过网站上的调查表、留言薄、定 制服务以及E-MAIL可以倾听顾客的意见,了解顾客的心声,加强企业与顾客间的联系 建立良好的顾客关系。 六、有利于
20、改善服务,提高企业服务质量利用网站,通过电子沟通方式,企业开展的在线服务是传统的沟通方式(如,邮 件、 、 等)所无比拟的,在线服务能够更加及时准确地掌握用户的需求,通过网站的交互式服务使得被动提供和主动获得统一起来,从而实现售前、售中、售后的全过程和全方位的服务。 七、 互联网的特点在于突破地域限制,一个网站能同时为您服务于世界各地的拥护;同时,网络无休息,一年365天、一天24小时,您的网站永远忠实地服务于您的所有客户。动态网站的开发技术及其实现ASP.NET 是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的 Web 应用程序。与以前的 Web 开发模型相比,ASP.NE
21、T 提供了数个重要的优点4:增强的性能3。ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。世界级的工具支持。ASP.NET 框架补充了 Visual Studio10.0 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。威力和灵活性。由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET 框架类库、消息处理和数据访问解决方
22、案都可从 Web 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。简易性。ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。可管理性。ASP.NET 采用基于文本的分层配置系统,简化了
23、将设置应用于服务器环境和 Web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了 ASP.NET 框架应用程序的部署5。只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。可缩放性和可用性。ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。
24、自定义性和扩展性。ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。安全性。借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。网站建设的市场背景互联网的兴起及其在全球范围内的普遍应用,加快了全球信息化的步伐,同时,又使传统企业面临着新的挑战和机遇。传统企业广泛实施电子商务转型策略,是互联网经济时代新型企业的发展方向。何将互联网技术应用于企业日常宣传、运作、管理中,如何在电子商务应用领域开拓市场,
25、如何利用Internet给企业带来商机、拓展企业的规模和效益,如何加强内部管理等等则更是企业在互联网经济浪潮中急需考虑的问题。 通过实施一系列的电子化建设计划,该动态网站将实现:整合企业的业务应用相关信息的动态发布:企业信息、产品信息、招聘信息等建立一个强大的对外宣传口径方便管理员对整个网站监控和维护 总体印象:立足于企业服务宗旨,延伸至高新行业领域,主题突出,内容精干,形式简洁版式布局:栏目集中1,分栏目检索明确,导航标志清晰色彩运用:色调总体呈畅快、简洁、专业的特征2:(根据企业实际需要决定)图片运用:配合文字及色块,以生动的形象图片表达知名专业公司的实力和创造力动态网站的总体模块设计由于
26、中小型企业网站的目标重点在于展示企业的信息和销售信息。本章重点介绍前台功能模块总体设计、后台功能模块总体设计和数据库模块的总体设计。前台功能模块总体设计前台功能模块主要包括:网站首页、关于我们、新闻资讯、产品介绍、咖啡学院、店铺展示、留言中心、联系我们。总体设计展示如图4.1。图4.1 前台功能模块总体设计后台功能模块总体设计 后台功能模块包括:用户管理、管理员管理、新闻管理的文章管理和类别管理、留言信息管理的添加、修改、查看等总体设计展示如图4.2。数据库模块总体设计数据库是模块建设中的关键部分,是企业网站设计的核心,大量页面和服务需要向数据库表写入信息,或更改、提取信息,用户信息等保存到数
27、据库管理系统中。数据库功能实现的好坏,直接决定了系统功能的实现程度,以及系统实际运行的安全性。在系统的开发及运行中,数据库系统占有重要的地位,因为本系统拥有并使用大量的数据信息,所以系统的运行需要功能强大和完善的数据库的支持。合理的数据库设计在系统开发中是至关重要的,通过建立完整的数据表、表与表之间完善的联系,可以存储完备的信息数据等,并方便对数据库的访问和增、改、查等操作,继而支持并简化系统的整个使用流程、信息浏览功能等,方便了用户的使用。数据库7模块的总体设计展示如图4.3。.1数据库功能模块总体设计本系统采用Microsoft公司的大型数据库系统SQL Server 2005。依据项目的
28、处理需求,对应数据表的设计及功能如下: 用户表: 存放用户的基本资料 新闻类别表: 存放企业网站的新闻的类别 新闻信息数据表: 存放网站内的新闻资讯 留言信息表: 存放用户的留言评论信息 管理员表: 存放管理员的基本信息表-1 用户表(users)字段名说明类型长度可否为空是否为主键Id自动编号int4否是LoginName用户名nvarchar50否LoginPwd密码nvarchar50否RealName真实姓名nvarchar50否Address nvarchar100是Phone联系 nvarchar50否Email电子邮箱nvarchar50是Role角色nvarchar1否表4.3
29、-2 新闻类别表(NewsCategories)字段名说明类型长度可否为空是否为主键Id自动编号int4否是Name类别名称nvarchar50否表4.3-3 新闻信息数据表(News)字段名说明类型长度可否为空是否为主键Id自动编号int4否是Title标题nvarchar200否Author作者nvarchar50是PubDate发布时间datetime50是Contents内容ntext10000是Clicks点击次数int10是NewsCategoryId新闻类别int4否表4.3-4 留言信息表(LY_Info)字段名说明类型长度可否为空是否为主键LyId自动编号int4否是User
30、Name用户名nvarchar50否LyTime留言时间datetime50否LyContent留言内容ntext1000否HF回复名nvarchar50否HFtime回复时间datetime50否表4.3-5 管理员信息表(Admin_info)字段名说明类型长度可否为空是否为主键AdminId自动编号int4否是AdminName管理员名nvarchar50否AdminPwd密码nvarchar50否AdminBZ级别nvarchar50否三层架构代码实现及页面展示本网站的后台实现应用了三层架构:数据层、业务层(BLL和DAL)以及表现层。下面我们分别介绍。模型层 该网站使用的数据库是sq
31、l server20087,在模型层将每个数据表封装起来。下面以新闻数据表为例,进行代码分析。在Visual Studio2010中可以看到模型层的展示,如图5.1。News.cs页面的源代码:/命名空间using System;using System.Collections.Generic;using System.Linq;using System.Text;模型层模型层图5.1模型层的展示namespace coffeeModel Serializable() public class News /对应数据库定义私有变量 private int id; public int Id /对
32、变量进行封装 get return id; set id = value; private string title = string.Empty; public string Title get return title; set title = value; private string author = string.Empty; public string Author get return author; set author = value; private DateTime pubDate; public DateTime PubDate get return pubDate;
33、set pubDate = value; private string contents = string.Empty; public string Contents get return contents; set contents = value; private int clicks; public int Clicks get return clicks; set clicks = value; private int newsCategoryId; public int NewsCategoryId get return newsCategoryId; set newsCategor
34、yId = value; private NewsCategory newsCategory; public NewsCategory NewsCategory get return newsCategory; set newsCategory = value; public News() /定义构造方法 5.2 数据访问层数据访问层用于链接数据库和各种方法的书写。在Visual Studio10.0中可以看到数据访问层和业务逻辑层的展示,如图5.2。数据访问层(DAL)图5.2数据访问层的展示下面以新闻数据表为例,进行代码分析。NewsService.cs页面的源代码:/命名空间using
35、System;using System.Collections.Generic;using System.Linq;using System.Text;using coffeeModel;using System.Data.SqlClient;using System.Data;namespace coffeeModel public class NewsService private static string connectionString = Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|website.mdf;Inte
36、grated Security=True;User Instance=True; / / 删除新闻 / / 新闻对象 public static void DeleteNews(News news) using (SqlConnection cn = new SqlConnection(connectionString) cn.Open(); SqlCommand cm = new SqlCommand(); cm.Connection = cn; string sql = delete from News where Id=Id; cm.CommandText = sql; cm.Param
37、eters.AddWithValue(Id, news.Id); cm.ExecuteNonQuery();/ / / 根据SQL语句返回部分字段的新闻列表 / / SQL语句 / 新闻对象集合 private static IList GetNewsBySql(string sql) using (SqlConnection cn = new SqlConnection(connectionString) cn.Open(); SqlCommand cm = new SqlCommand();/建立sql命令对象实例 cm.Connection = cn; cm.CommandText =
38、sql; SqlDataReader dr = cm.ExecuteReader(); List list = new List(); while (dr.Read() News news = new News(); for (int i = 0; i dr.FieldCount; i+) string fildName = dr.GetName(i); if (fildName = Id) news.Id = (int)drId; else if (fildName = Title) news.Title = (string)drTitle; else if (fildName = Auth
39、or) news.Author = (string)drAuthor; else if (fildName = PubDate) news.PubDate = (DateTime)drPubDate; else if (fildName = Contents) news.Contents = (string)drContents; else if (fildName = Clicks) news.Clicks = (int)drClicks; else if (fildName = NewsCategoryId) news.NewsCategoryId = (int)drNewsCategor
40、yId; news.NewsCategory = NewsCategoryService.GetNewsCategoryById(int)drNewsCategoryId); list.Add(news); dr.Close(); return list; / / 查询最近的10条新闻 / / public static IList GetNewsTop10() string sql = select top 10 Id,Title from News order by Id DESC; return GetNewsBySql(sql); / / 根据查询条件,排序字段,排序方向返回包含部分字
41、段(Id,Title,Author,PubDate,Clicks,NewsCategoryId)的新闻列表 / / 查询条件 / 排序字段 / 排序方向 / 新闻对象集合 public static IList GetNewsPartFieldsByConditions(string conditions, string sortField, string direction) string sql = select Id,Title,Author,PubDate,Clicks,NewsCategoryId from News; if (conditions.Trim().Length 0)
42、sql += where + conditions; if (sortField.Trim().Length 0) sql += order by + sortField; if (direction.Trim().Length 0) sql += + direction; return GetNewsBySql(sql); / / 根据ID查询新闻 / / 新闻ID / 新闻对象 public static News GetNewsById(int id) using (SqlConnection cn = new SqlConnection(connectionString) cn.Ope
43、n(); SqlCommand cm = new SqlCommand(); cm.Connection = cn; string sql = SELECT * FROM News WHERE Id =Id; cm.CommandText = sql; cm.Parameters.AddWithValue(Id, id); SqlDataReader dr = cm.ExecuteReader(); if (dr.Read() News news = new News(); news.Id = (int)drId; news.Title = (string)drTitle; news.Auth
44、or = (string)drAuthor; news.PubDate = (DateTime)drPubDate; news.Contents = (string)drContents; news.Clicks = (int)drClicks; news.NewsCategoryId = (int)drNewsCategoryId; news.NewsCategory = NewsCategoryService.GetNewsCategoryById(int)drNewsCategoryId); dr.Close(); return news; else dr.Close(); return
45、 null; / / 添加新闻 / / 新闻对象 public static void AddNews(News news) using (SqlConnection cn = new SqlConnection(connectionString) cn.Open(); /string sql = insert News Values( + news.Title + , + news.Author + , + news.PubDate + , + news.Contents + , + news.Clicks + , + news.NewsCategoryId + ); /SqlCommand
46、 cmd = new SqlCommand(sql, cn); /cmd.ExecuteNonQuery(); SqlCommand cm = new SqlCommand(); cm.Connection = cn; string sql = INSERT News(Title,Author,PubDate,Contents,Clicks,NewsCategoryId) + VALUES(Title,Author,PubDate,Contents,Clicks,NewsCategoryId); cm.CommandText = sql; cm.Parameters.AddWithValue(
47、Title, news.Title); cm.Parameters.AddWithValue(Author, news.Author); cm.Parameters.AddWithValue(PubDate, System.DateTime.Now); cm.Parameters.AddWithValue(Contents, news.Contents); cm.Parameters.AddWithValue(Clicks, news.Clicks); cm.Parameters.AddWithValue(NewsCategoryId, news.NewsCategoryId); cm.Exe
48、cuteNonQuery(); / / 修改新闻 / / 新闻对象 public static void ModifyNews(News news) using (SqlConnection cn = new SqlConnection(connectionString) cn.Open(); SqlCommand cm = new SqlCommand(); cm.Connection = cn; string sql = UPDATE News + SET + Title=Title, + Author=Author, + PubDate=PubDate, + Contents=Conte
49、nts, + Clicks=Clicks, + NewsCategoryId=NewsCategoryId + WHERE Id=Id; cm.CommandText = sql; cm.Parameters.AddWithValue(Id, news.Id); cm.Parameters.AddWithValue(Title, news.Title); cm.Parameters.AddWithValue(Author, news.Author); cm.Parameters.AddWithValue(PubDate, news.PubDate); cm.Parameters.AddWith
50、Value(Contents, news.Contents); cm.Parameters.AddWithValue(Clicks, news.Clicks); cm.Parameters.AddWithValue(NewsCategoryId, news.NewsCategoryId); cm.ExecuteNonQuery(); / / 根据查询条件、排序字段、排序方向返回所有字段的新闻列表 / / 查询条件 / 排序字段 / 排序方向 / 新闻对象集合 public static IList GetNewsAllFieldsByConditions(string conditions,
51、string sortField, string direction) string sql = SELECT Id,Title,Author,PubDate,Contents,Clicks,NewsCategoryId FROM News; if (conditions.Trim().Length 0) sql += WHERE + conditions; if (sortField.Trim().Length 0) sql += ORDER BY + sortField; if (direction.Trim().Length 0) sql += + direction; return G
52、etNewsBySql(sql); 5.3业务逻辑层业务层用于访问数据层,从数据层取数据、修改数据以及删除数据,并将结果返回给表现层。如图5.3。业务逻辑层(BLL)下面以新闻数据表为例,进行代码分析。NewsManager.cs页面的源代码:/命名空间using System;using System.Collections.Generic;using System.Linq;using System.Text;using coffeeModel;using coffeeDal;using System.Data;using System.Data.SqlClient;using Syste
53、m.Data.Sql;namespace coffeeBll public class NewsManager public static void DeleteNews(News news) NewsService.DeleteNews(news); public static IList GetNewsPartFiledsByConditions(string conditions, string sortField, string direction) return NewsService.GetNewsPartFieldsByConditions(conditions, sortFie
54、ld, direction); public static News GetNewsById(int id) return NewsService.GetNewsById(id); public static IList GetNewsTop10() return NewsService.GetNewsTop10(); public static void AddNews(News news) if (news.Author = null) news.Author = ; news.PubDate = DateTime.Now; news.Clicks = 0; NewsService.Add
55、News(news); public static void ModifyNews(News news) if (news.Author = null) news.Author = ; if (news.PubDate = DateTime.MinValue) news.PubDate = DateTime.Now; NewsService.ModifyNews(news); public static IList GetNewsAllFieldsByConditions(string conditions, string sortField, string direction) return
56、 NewsService.GetNewsAllFieldsByConditions(conditions, sortField, direction); 5.4 表示层 表现层用于用户接口的展示,以及用业务层的类和对象来“驱动”这些接口6。在中,该层包括aspx页面、用户控制、服务器控制以及某些与安全相关的类和对象。在Visual Studio2010中可以看到表示层的展示,如图5.4。表示层下面以多个页面为例,进行代码分析。 5.首页展示页面首页是访问者首先看到的页面,它的制作直接影响企业的形象。这个金米兰咖啡公司网站首页采用div进行定位,前台后台相结合。展示效果如图5.所示。 图5.首页
57、设计 1. Fancy Coffee 花式咖啡 法国人喝咖啡讲究的不是咖啡本身的品质和味道,而注重饮用咖啡的环境和情调,表现出来的是优雅的. 当你端起一杯咖啡,深深吸入咖啡香气的那一刻,所有这一切都会让你联想到一种植物、一个精确的地. 新闻资讯页面展示效果如下图5.所示。图5.新闻资讯页面 新闻资讯 排序方式: | a href=news_Detail.aspx?Id= 发表日期: 浏览次数: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;
58、using System.Web.UI.WebControls;using coffeeBll; protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) /首次加载,赋初值 if (Request.QueryStringNewsCategoryId != null) int id; try id = Convert.ToInt32(Request.QueryStringNewsCategoryId); ViewStateConditions = NewsCategoryId= + id; catch ViewS
59、tateConditions = ; else ViewStateConditions = ; ViewStateSortField = Id; ViewStateDirection = DESC; ViewStateTitleClick = 0; ViewStatePubDateClick = 0; ViewStatePageIndex = 0; Databind(); private void Databind() /设置PagedDataSource对象实例 PagedDataSource pdsNews = new PagedDataSource(); /设置数据源 pdsNews.D
60、ataSource = NewsManager.GetNewsAllFieldsByConditions(ViewStateConditions.ToString(), ViewStateSortField.ToString(), ViewStateDirection.ToString(); /允许分页 pdsNews.AllowPaging = true; /设置每页显示条件记录 pdsNews.PageSize = 3; /设置当前索引值 pdsNews.CurrentPageIndex = PageIndex; /设置末页索引值 ViewStateLastPageIndex = pdsN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 修桥合同范本
- 2025年安徽道路运输从业资格证考试内容是什么
- 包工料水电装修合同范本
- 公司退休返聘合同范例
- 医院人事劳务合同范本
- 全套合同范本目录
- 佣金合同范本道客
- 全职抖音主播合同范本
- 农村改水电合同范本
- 出租生态大棚合同范本
- 风机基础监理实施细则
- GB/T 24503-2024矿用圆环链驱动链轮
- 人教版(2024)英语七年级上册单词表
- 脓毒血症患者的护理查房
- 广东省广州仲元中学2025年高三下学期入学考试试化学试题文试卷含解析
- 4《海燕》公开课一等奖创新教学设计
- 2022年全国职业院校技能大赛赛项-ZZ-2022039戏曲表演赛项基础知识试题答案(70公开题)
- 中国高血压防治指南(2024年修订版)核心要点解读
- T-CERS 0007-2020 110 kV及以下变电站 并联型直流电源系统技术规范
- 金属焊接和切割作业教案
- 定制公司用工合同范本
评论
0/150
提交评论