.Net环境下图书销售系统的设计与开发

更新时间:2024-06-23 08:40:01 阅读量: 综合文库 文档下载

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

摘要

以一个图书销售系统的开发为例,详细介绍了基于.Net的图书销售系统的 开发过程。图书销售作为书店日常的重要业务,目前在中小型书店中仍存在手 工管理,工作效率低下,并且不能及时了解书店各类图书的库存、读者需求的 图书难以在短时间里找到、图书的入库和更新比较麻烦等问题,不便于动态及 时调整图书结构。同时由于不可避免的人为因素,造成数据的遗漏、误报等。 为了更好地适应当前书店的销售需求,缓解手工管理存在的弊端,开发了此图 书销售系统,该系统向用户提供的服务将在传统的“入库->销售->盘点”基础 上,进一步提供全方位的信息服务。

本文首先介绍了课题的研究背景和意义,阐述了.Net体系的相关概念、采 用C撑语言开发的优势,并对基于UML的软件工程建模思想、数据库设计的理 论和方法进行分析。然后针对书店的业务进行系统的需求分析,给出系统的业 务模型、功能模型。接下来结合图书销售系统的实际要求,对系统进行了总体 设计和数据库的设计,并给出了数据访问层、业务逻辑层和表示层的具体实 现,其次介绍系统的软件实现,并以关键核心模块为例给出了系统代码的具体 实现,最后给出了项目的测试和部署。

图书销售系统的实现包括了书店的日常业务功能,如图书管理、采购入 库、销售管理、库存管理、信息发送、测试影碟、系统设置等,并且界面简 单、操作方便。作为一种该研究方向的实践性探索,本系统的设计与开发旨在 实现一个智能化、系统化、信息化的图书销售系统,以满足当前中小型书店在 管理实践和业务操作中的具体需求,成为书店管理人员的助手。 【关键词】.Net;C#;UML;图书销售;软件建模 【论文类型】应用研究

第1章绪论 1.1研究背景

随着我国经济的高速发展,中小企业在社会经济中扮演的角色越来越重

要,已成为最多元化和最具创新精神的部分。但是随着企业的发展,客户的增

多,企业账目混乱,库存不准,信息反馈不及时等问题也接踵而至。这些问题 已成为制约中小企业发展的瓶颈,严重制约了中小企业的发展壮大。比较而 言,外资企业具有更为雄厚的资金实力、丰富的管理经验和先进的技术手段, 因此,如果我国的中小企业不借助先进的管理思想转变经营理念、使用信息化 的手段提高企业的管理水平和工作效率,将很难在今后的国际竞争中取胜。如 何借助IT手段、如何通过信息化,加强核心竞争力,实现持续发展已成为中小 企业亟待解决的关键问题n3。

我国中小企业有70%是零售企业,企业经营涉及迸、销、存多个环节,涉

及商品种类繁多,业务量大,库存管理复杂,使用手工管理已无法胜任。图书 销售作为书店日常的重要业务,目前在中小型书店中仍存在手工管理,工作效 率低下,并且不能及时了解书店各类图书的库存、读者需求的图书难以在短时 间里找到、图书的入库和更新比较麻烦等问题,不便于动态及时调整图书结 构。如何采用先进的计算机系统管理进货、库存、销售等诸多环节也已成为趋

势及必然。

1.2研究的目的和意义

在高端企业系统市场,强大的客户关系经常决定了谁能成为市场领导者。

及时和准确的销售数据能帮助企业更好地了解客户的需求和企业在市场中的地 位。通过“图书销售系统”,书店能迅速获得第一手的销售数据,如销售数量、 价格、订单、存货、市场趋势和竞争者的有关信息。同时,这个“图书销售系 统”也让公司管理层加强了对散布在全国各地的经销商和销售代表的管理,在任 何销售事件发生时就对之有了第一时间的了解。“图书销售系统的设计与开发” 的主要特点是利用了电脑和网络,使得书店管理者通过数据库就能轻松查询到 本书店的相关信息,不仅极大地方便了书店管理者,它还给图书提供者和书店 之间提供了一个交互的电子平台,可以通过网络寻找货源,及时方便地为购书

者查找订购书籍,提高了书店的效率。

1.3研究内容

本文以一个中小型书店的图书销售系统为例,对Microsot患.Net体系、C撑语 言开发技术、UML建模理论、数据库设计方法与技巧等进行了深入研究。 系统的开发主要包括后台数据库的设计、数据访问层、业务逻辑层和表示

层的具体实现等几个方面,对于前者要求建立起数据一致性和完整性强、数据 安全性好的数据库,但要求处理的信息量并不大,采用了SQL Server 2000进行 开发;前端应用程序采用MVC架构,功能包括登图书管理、采购入库、销售 管理、库存管理、信息发送、测试影碟、系统设置等,可以浏览图书,入库出 库,并对库存进行查询,另外各书店分店可以进行图书流通、会话与交流,对

提高工作效率有重要意义【21【31【4】。

1.4论文结构

本文第一章介绍了课题背景和意义。第二章是.Net体系开发平台、UML建 模理论及数据库设计方法,主要对.Net体系开发技术、UML系统建模思想及数 据库设计技巧进行分析。第三章主要介绍了图书销售系统分析。第四章是图书 销售系统总体设计。第五章根据第三章、第四章的分析和设计,对图书销售系

统进行了具体软件实现。第六章给出了项目的测试和部署。最后对全文做了总

结。

2

第2章开发平台和相关技术

2.1.Net框架

2.1.1.Net框架概述

框架(Framework)是许多基本结构的重要组成部分,如J2EE,CORBA等

技术都涉及框架的概念。设计框架的主要目的就是屏蔽具体的实现过程,向用 户和开发人员展现一个透明的使用和开发平台。框架中通常提供了许多实用工 具以及相关服务,开发人员使用这些工具可很容易在此平台上开发。.Net同样 也为用户和开发人员提供了一个框架,即.Net Framework。.Net框架包含两个主 要组件:公共语言运行库和.Net框架类库。

公共语言运行库是.Net框架的基础。您可以将运行库看作一个在执行时管 理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且 能确保代码的安全性、可靠性和准确性。事实上,代码管理是运行库的基本功 能。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非 托管代码。

.Net框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用 类型集合,您可以使用它开发包含从传统的命令行或图形用户界面应用程序到 基于ASP.Net(Active Server Pages.Net)所提供的最新形式的应用程序(如 Web窗体和XML Web services)。.Net框架提取了微软COM(Component Object

Model组件对象模型)的精华,将它们与松散耦合计算的设计思想有机地结合在 一起,生成了强大、高效的Web组件系统{51 161。

微软.Net组件系统简化了开发的操作、深入的集成了安全性,引进了基于 互联网的操作系统,并且极大的改善了应用程序的可靠性和扩展性。 2.1.2公共语言运行平台

公共语言运行平台在组件的开发以及运行过程中,都扮演着非常重要的角

色。在组件运行过程中,它负责管理内存分配、启动或取消线程和进程、实施 安全性策略、同时满足当前组件对其它组件的需求。在开发阶段,它的自动化 程度和COM开发相比大为提高,例如它可以自动执行内存管理而不需要开发 人员在程序中设定。另外,公共语言运行平台的映射功能减少了代码编写量, 这些代码是开发人员在将业务逻辑转化成可复用的组件进行编程时所必需的。 实际上每种编程语言都有自己的运行时,如Visual Basic的RBRUN,Java的 MSVCRT等。.Net框架的关键作用是它提供了一个跨语言的统一编程环境,这 是它和普通编程语言环境的根本区别【5】。 2.1.3统一的编程类库

.Net框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展 的类库集合。目前,不同语言的开发人员使用的是各不相同的类库,如C++程 序员使用MFC,VB程序员使用VBAPI集。而.Net框架统一了微软当前各种不 同的框架,通过创建一个公共的跨语言编程的API集合,.Net框架实现了跨语 言继承性、错误处理和调试功能【6l。 2.1.4,Net框架的核心要素

.Not框架提供了几种重要的功能为系统的运行提供保障。首先是安全系统 和配置系统,这两个系统协同工作,有力的遏制了运行不安全代码的可能性, 并减少了“DLL Hell”对应用程序配置的影响。

安全系统是~个高度细化的系统,它赋予开发人员和管理员多种代码处理 权限。当.Net框架应用程序被下载到某一系统中运行时,它会申请一组权限 (如申请对临时目录的写入权限)。公共语言运行时将收集有关应用程序的事 实信息(如程序来源、是否用了有效签名等),并按管理策略决定是否允许该 应用程序运行。运行时还以通知应用程序它无法授权申请的所有权限,并允许 应用程序自行决定是否继续运行。这种安全系统可以解决困扰用户的“DLL

Hell”问题。所谓\”问题实际上是版本的管理闯题。如果用户新装了某 个应用程序之后,整个系统都陷入了瘫痪状态,而在安装新的程序之前系统一 直运行得非常良好,那么最大的可能就是新安装的应用程序重写了一些共享 库。这种情况出现的频率很高,被人们称为‘'DLL Hell'’。.Net框架的凡项高级 功能可以彻底消除“DLL Hell'’现象。

首先,它有~个非常强大的内部命名系统,能够有效的防止两个库因为互 相重名而被混淆。

.另外.Net框架还提供一项被称作“并行”配置的新功能。如果前例中新安装 的应用程序确实重写了共享库,那么现有应用程序可对该库进行修复。等现有 应用程序再次启动时,它会检查所有的共享文件。如果发现文件被更改,同时 这些更改又是不兼容的,则它可以请求公共语言运行时为它提取一个可以使用 的版本。得益于强大的安全系统,公共语言运行时可以安全的执行该操作,这 样应用程序就完成了本身的修复工作。 总之,.Net框架是微软开发人员战略的核心内容,它旨在帮助开发人员轻

松地构建、配置和运行Web Servicet7】。

2.2 Visual C誊.NET

Visual C撑.NET是Visual Studio.NET家族的一个成员,其他成员包括Visual Basic.NET、Visual Ca-+.NET等开发工具。

Visual Cj6}是目前最新、最先进的软件开发工具之一,它汇集了Microsoft公

司的技术精华,不仅全面贯彻了面向对象技术,而且在编译优化技术方面较其 他同类产品具有明显的优势。它是一个彻底的程序级的开发环境,可视化的设 计减少了不少编程的工作量。利用Visual C稃几乎可以完成任何设计功能,小至 普通的应用系统。大至复杂的应用开发工具。在Visual Studio.NET中,Visual

C群支持RAD(Rapid-Application Development,快速应用程序开发),例如项目

模板、设计器和其他开发环境特性。

C撑是Visual Studio.NET中引入的全新编程语言。作为C和C++得派生语

言,C群具有简单、先进、类型安全和面向对象等特点。C捍就是为了构造能运行 于.NET平台上的企业级应用程序而设计的。使用C{66编写的代码将被作为受控 代码编译,这意味着它能利用通用语言运行库的服务,例如语言互用、冗码收 集、增强的安全性和改进的版本支持等。

Visual C存能够访问下一代Windows服务(NGWS,Next Generation

Windows Services)平台。NGWS软件开发工具包定义了一个通用语言子集 (CLS,Common Language Specification)。CLS能够保证CLS兼容语言与类库

间的无缝作用,因而类似于一种世界语。Visual C栉是一种全新的语言,使用同 样丰富且功能强大的类库。Visual C撑的类库就是.NET框架is]。

使用Visual C撑能够在代码中方便地创建自己的组件,或配置.NET框架类

中的复杂组件。使用非可视化组件能够在自己的应用程序中方便地使用消息队

列、事件日志、性能计数等资源。Visual C群提供了以下特性,以构造可靠的系 统级组件:

·完全支持COM伊latform的现存代码整合 ·通过冗余收集和类型安全提供稳固性

5

.Net环境下图书销售系统的设计与开发

·通过内建代码信任机制提供安全性 ·完全支持可扩展的元数据概念

利用Visual C拌的以下特性,能够与其他语言实现跨平台互用,并能使用先

前生成的数据:

·通过COM+I.0和.NET框架服务提供完全的语言互用支持 ·提供基于Web组件交互的XML支持

·通过版本识别提供更方便的管理和配置 2.3基于UML的软件建模思想

软件开发的主要工作是软件需求和软件设计,软件需求和软件设计的关键 问题是软件建模,简称建模。统一建模语言(Unified Modeling Language,

UML)是一种面向对象的图形化的建模语言,提供了描述软件系统的图形和方 法,利用它可以进行需求分析、概要设计、详细设计、编程实现、项目计划、

测试、原型迭代、产品发布和产品维护。

UML不是一种建模思想或建模方法,而只是一种建模语言或建模工具。 UML提供了9种图:类图(Class Diagram)、对象图(Object Diagram)、用

例图(Use Case Diagram)、时序图(Sequence Diagram)、协作图

(Collaboration Diagram)、状态图(State chart Diagram)、活动图(Activity

Diagram)、构件图(Component Diagram)和实施图(Deployment Diagram),

重点是建立系统的用例图、时序图和类图,因为这三者直接和建模思想的三种 模型相关联。基于UML理论的的软件建模CASE工具有Microsoft Visio、

Rational Rose、Power Designer等191。

软件建模中的三个模型是指业务模型、功能模型和数据模型。功能模型 (Function Model,FM)描述系统能做什么,即对系统的功能、性能、接口和界 面进行定义。业务模型(Operation Model,OM)描述系统在何时、何地、由何

角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行

定义。数据模型(Data Model,DM)描述系统工作前的数据来自何处、工作中的

数据暂存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对

系统的数据结构进行定义。

功能模型和业务模型在需求分析时建模,数据模型在设计时建模。数据模

型建模用Power Designer、ER win、Oracle Designer或Class Diagram表示;功能模型用功能点列

表或者Use Case Diagram表示;业务模型用自然语言加上流

程图、Sequvnce Diagram或Activity Diagram表示Ilol。

在图书销售系统的软件建模阶段,利用了三种模型的建模思想,分别采用 UML的类图、用例图和业务处理流程图描述系统的数据模型、功能模型和业务

模型。

2.4数据库设计概论

数据库设计包括数据库需求分析、数据库概念设计、数据库物理设计三个

阶段。索引、视图、触发器和存储过程都在数据库服务器上运行,所以划分到 数据库物理设计之中。 2.4.1数据库需求分析

需求分析都是从业务流程开始,这是因为:用户只能从业务流程上提出要

求,而将功能、性能和接口置于业务流程之中。软件开发的目标也是为了满足 用户的业务流程需求,并在流程中体现出功能、性能和接口需求。数据库设计

的需求分析也是从业务流程开始的。在需求分析时,“一定要满足用户需要的功

能和性能,尽量回避用户想要的功能和性能”。因为需要是必须的,想要是无止 境的,常常会使问题扩大化,使数据库越来越大,使项目长期不能收尾。 用户的需要时从原始单据的录入、统计、查询、报表的输出开始的,中间

可能有数据处理、传输和转换问题,这些需要都应满足。数据库需求分析的步 骤是:收集系统所有的原始单据(信息源产生的数据)和统计报表,弄清楚两 者之间的关系,写明输出数据项中的数据来源和算法。若原始单据覆盖了所有 需要的业务内容,并且能满足所有统计报表的输出数据要求,则需求分析完 毕。反之继续分析。

图书销售系统的数据库设计过程中需求分析要从图书采购单、书店供货 单、客户购货单、客户退货单、单日销售款单据等数据源入手,分析相关报 表、各种业务查询之间的数据处理关系。 2.4.2数据库概念设计

数据库概念设计是指设计出数据库的概念数据模型(即E.R图)和相应的 数据字典(DD),如实体字典、属性字典、关系字典。数据库概念设计与具体 的数据库管理系统和网络系统无关,相当于数据库的逻辑设计。在图书销售系

7

.Net环境下图书销售系统的设计与开发

统的数据库概念设计中,采用数据库设计工具Power Designer给出系统数据库 的概念数据模型。

2.4.3数据库物理设计

数据库物理设计是指设计出数据库的物理数据模型,即数据库服务器物理

空间上的表、字段、索引、表空间、视图、储存过程、触发器,以及相应的数 据字典。数据库物理设计与具体数据库管理系统和网络系统有关。 数据库物理设计的方法如下:

·确定关系数据库管理系统平台,即选定具体的RDBMS。

·利用数据库提供的命令和语句,建立表、索引、触发器、存储过程、视图

在盘 号乎o

·列出表与功能模块之间的关系矩阵,便于详细设计。

在图书销售系统的数据库物理设计中,采用数据库设计工具Power Designer给出了系统数据库的物理数据模型。 2.4.4数据库设计步骤

综合数据库设计的三个主要内容需求分析、概念设计和物理设计,可以给 出数据库设计的步骤,如下表2.1所示:

表2-1数据库设计的步骤

2.5数据库设计的理论和方法

l、原始单据与实体之间的关系

数据库概念数据模型的建立依靠实体关系,也就是给出系统的E-R图。原

始单据与实体之间关系是一对一、一对多、多对多的关系。在一般情况下,它 们是一对一的关系,即一张原始单据对应且只对应一个实体。在特殊情况下, 它们可能是一对多或多对一的关系,即一张原始单据对应多个实体,或多张原

始单据对应一个实体,这里的实体可以理解为基本表。 2、主键和外键

一个实体不能既无主键(PK),又无外键(FK)。在E.R图中,处于叶子

部位的实体可以定义为主键,也可以不定义主键,但必须要有外键。主键和外 键配对表示实体之间的连接:主键表示主表,外键表示主表与从表之间的连 接。

3、范式理论

在概念数据模型设计时遵守第三范式,实现实体、属性、主键的原子化。

数据库设计的规范化理论的实质就是引导并帮助设计人员实现“实体、属性、主 键的原子化”。没有冗余的数据库设计可以做到,但是,没有冗余的数据库设计 未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保 留冗余数据,这是用空间换时间的做法。在概念数据模型设计时遵守第三范 式,降低范式的标准的工作放到物理数据模型设计时考虑。降低范式就是增加

字段、允许冗余。

4、数据库设计的两大窍门【ll】

窍门之一:如果存在两个实体或者多个实体之间的关系非常复杂,存在多

对多的关系。为了方便数据库概念数据模型设计,必须消除这种关系。消除办 法为在两者之间增加第三个实体,把原来一个多对多的关系变为两个一对多的 关系,另外再把原来两个实体的共同属性分配到第三个实体中去,还要将原来

两个实体的主键当做第三个实体的外键。 窍门之二:“以不变应万变”的设计技巧建立稳定的数据模型,这个技巧是 “列变行”.所谓“列变行”,就是将第一个表中的某些列变为第二个表中的某些 行,这样就把原来设计不科学的一个表变为设计很科学的两个表。一般情况下 应用在当一个表中的列数较多时,而且多到不可能控制在一个固定的范围内时,才考虑运用此技巧,将原来一个表分解为两个表,其中一个为主表,另一

个为从表,通过主键与外键,两表进行连接,共同完成相关的操作。

5、西瓜理论和西瓜方法

所谓西瓜理论,就是在数据库分析时,如果将属性比作芝麻,将主要实体

比做大西瓜,将次要实体比做小西瓜,那么芝麻必须围绕西瓜转,小西瓜必须 围绕大西瓜转。

所谓西瓜方法,就是在数据库设计时,如果将属性比作芝麻,将主要实体

比做大西瓜,将次要实体比做小西瓜,那么在用CASE工具设计E.R图时,应

先画出大西瓜,后画出小西瓜,用西瓜包住芝麻,用大西瓜统帅小西瓜。

“西瓜理论和西瓜方法”除了继承“实体主导型方法”的实体统帅属性的思想

外,还进一步提出:

·在数据库需求分析和设计时,一方面要以实体去统帅属性,另一方面要以

主要实体去统帅次要实体。

·不但要使属性围绕实体转,而且要使次要实体围绕主要实体转。

:在任何信息系统的全局E.R图中,其主要实体的数目都是有限的,数据库 分析与设计的任务就是善于发现、捕获次要实体,并用主要实体去组织、规

划、设计全局E.R图。 6、完整性约束

实体完整性:每个实体必须有唯一性标志,用于区分不同的实体,这个唯 一性标志是用实体主键来实现。

参照完整性:就是主表到从表的方向是参照关系,由从表到主表的方向是 依赖关系。这样的参照和依赖关系通过主键(PK)、外键(PK)和触发器来加 以实现。

用户定义完整性:是用户单位规定的一些业务规则,这些业务规则有时用 存储过程实现,有时用触发器来实现,有时用定义域(对字段的取值范围进行 定义)的完整性来实现。

在图书销售系统的数据库设计过程中选择性的采用了以上方法,完善了数

据库的概念数据模型、优化了表结构、提高了数据库系统的运行效率。第3章图书销售系

统需求分析

图书销售是书店日常经营管理中十分重要的一个组成部分,传统的手工管

理方式呈现出越来越多的弊端。在手工管理模式下,统计、汇总处理时的工作 量极其繁重,处理效率非常低,书店经营者也无法及时了解企业资金占用的实 际状况。通过图书销售系统,企业可以直观分析书店售书情况,作出更好的决

策。

3.1需求分析

需求分析是整个软件生命周期的关键阶段,通过它可以了解系统的业务流

程和数据流程,达到与客户共同确定业务模型、功能模型、性能模型、接口模 型的目标。通过实际调查,图书销售系统具有以下功能: 口要有良好的人机界面。

口支持多人操作,要求有较好的权限分配功能。 口

在进货、退货时存在一对多的关系,要求支持多行录入功能。 对于每种商品要求编号惟一,编号需要自动生成。

口方便的数据查询,支持多条件查询。 口

口在相应的权限下,可方便地删除数据。

口支持账目的详细内容浏览。

口分析商品进货、商品销售情况。

数据计算自动完成,尽量减少人工干预。

口系统支持良好的数据备份操作,有效保护数据,以减少企业损失。 3.2系统结构设计

在图书销售系统的开发中,采用基于C/S架构的开发方式,实现的系统具 有界面美观、操作简单、开发系统容易升级、系统开发周期短、成本低等优 点。在项目的研发中,从体系结构上将本系统设计为4层结构【12l。

图3-l系统的体系结构

(1)数据存储层:该层表现为数据库服务器。在本项目中采用SQL

Server。在数据库中存储本项目的业务数据和管理数据。另外,为了提高系统的 性能、效率和安全,本项目在对系统进行分析时,着重分析对数据表的常用操 作;在数据库中创建大量的存储过程。在系统中不允许应用程序直接对数据表 进行操作,而是通过存储过程完成对数据表的访问。这样一方面能提高系统的

性能和效率,另一方面能确保数据的安全。

(2)数据存取层:该层通过ADO.Net对数据存储层中的数据进行操作。

在外部形式上表现为一些类。在这些类中对ADO.Net的数据访问进行封装。主 要是对数据存储层中的存储过程进行调用。

(3)业务逻辑层。该层主要由一些实现业务逻辑的业务类来构成。在实现 上,业务逻辑类完成对数据存取层中数据存取类的调用和封装。 (4)表示层。该层主要是C/S架构的Windows应用程序,该层通过对业 务逻辑层中的业务类进行调用,从而实现相应的功能。 3.3项目规划

图书销售系统的设计与开发是一个典型的数据库应用程序,由登录模块、

主界面、采购入库和销售管理模块、库存管理模块、实用工具模块、信息发送 模块、测试影碟模块、系统设置模块、帮助模块等组成。特规划功能模块如

下:

口采购入库模块

采购入库模块主要管理书店图书进货信息,支持多行录入以及采购查询功

能。

口销售管理模块销售管理模块主要管理书店图书的销售及退货信息,支持多行录入以及销 售信息查询,而且通过分析报表可以清晰看到各操作员的销售业绩。 口库存管理模块

库存管理模块主要实现库存货品浏览、今日盘点、库存查询等功能。 口实用工具模块

实用工具模块主要实现切换操作员,更改用户密码,备份数据库,更改用 户信息等功能。

口信息发送模块

信息发送模块主要实现将某日的销售状况发送到数据库中,以便今后的汇

总。

口测试影碟模块

测试影碟模块主要实现对影碟的性能进行测试等功能。 口系统设置模块

系统设置模块主要实现系统基本数据的录入,相关基本数据为:供货商信

息管理、客户信息管理、用户信息管理。

口帮助模块

帮助模块主要实现对本书店的介绍以及退出功能。 3.4系统业务模型

3.4.1系统总体业务流程图

图书销售系统的业务流程图给出了系统的业务操作的流水步骤,分别为系

统操作员登陆、信息核对、权限分配、执行相关子操作业务等。图书销售系统 的业务流程图如图3.2所示。

图3-2图书销售系统业务流程图

3.4.2系统组织结构图

系统组织结构图列出了各部门的岗位角色表,即组织结构模型。图书销售

系统的岗位角色有总经理、采购部、销售部、库存部、市场部、人力资源部和 信息技术部等。总经理岗位职责为书店业务的组织领导,全店信息的查询。采 购部职责为图书采购及综合业务查询。库存部职责为库存综合业务查询。市场 部负责图书销售市场的推广。人力资源部负责本店雇员的流动管理及任务、权 限分配。信息技术部负责系统的维护、信息发送、图书光盘测试等。图书销售 系统的组织结构图如图3.3所示。

图3-3图书销售系统组织结构图

3.5系统功能模型

3.5.1 Rational Rose概述

Rational Rose是Rational公司开发的一种面向对象的CASE工具(即面向

对象分析和设计的强大工具)。它不仅可以帮助系统先建立模型,后编写代 码,而且可以保证软件开发过程中代码和模型的一致性,从而一开始就保证系

统结构的合理性。软件开发团队利用Rational Rose可以有效地进行团队交流和

开发,及时发现开发过程中的缺陷,避免开发周期中不必要的成本消耗【13l。 UML是一种编制系统蓝图的标准化语言,可以实现大型复杂系统各种成分

描述的可视化说明并构造系统模型,以及建立各种所需的文档。它是一种定义 良好、易于表达、功能强大且普遍适用的建模语言。UML的发展对软件工程的

发展做出了杰出的贡献【141。

UML其实就是一种表达方式而已,把人们所理解到的这套软件系统通过一

定的视图方式展现出来,需掌握用例图的绘制和识别,绘制静态结构图,和动 态结构图,同时能读懂一个UML的图,能从中获得在后期编码阶段的信息, 一个系统的好坏,UML建模是相当关键的,一个便于维护,方便扩展的系统, 那么是离不开一个好的UML模型的,在后期开发都是围绕这个UML模型进行 开发,那么UML建模就至关重要,需要构建一个结构合理,用例描述清晰的 UML模型。简单的说就要一套软件设计的思想,按照怎样的方式去创建各个实 例之间的关系,方法的重用,父类,接口的书写都是在建模阶段必须解决和完

善的问题。

Rational Rose包括统一建模语言(UML),ooSE,以及OMT。其中统 一建模语言(UML)由Rational公司3位世界级面向对象技术专家Grady Booth、Ivar Jacobson、和Jim Rumbaugh通过对早期面向对象研究和设计方

法的进一步扩展而得来的,它为可视化建模软件奠定了坚实的理论基础。 Rose与UML得关系是:UML是Rational Rose的理论基础,Rational Rose 是UML的建模实现途径,即Rose是UML的实现工具。,要通过UML的建

模思想和建模方法(功能模型、业务模型、数据模型)对系统进行系统分析

【15】

o

3.5.2系统用例图

功能模型描述系统能做什么,是系统所有功能的集合,具体表现在系统的

功能、性能、接口和界面上。从用户的角度来看,功能模型是系统功能需求列

表;从Rose的角度来看,功能模型就是系统用例的集合:从操作界面的角度来

看,功能模型就是系统的功能菜单。UML规定采用用例图来描述功能模型。 利用Rose工具对系统进行UML建模,系统用例包括图书采购、登录系

统、测试影碟、信息发送、综合业务查询、备份数据库、供货与购货管理、分 析报表、库存查询等。系统功能模型如图3.4系统用例图所示【161。

图3.4系统用例图

3.5.3创建活动图描述用况

系统用例图说明了为所服务的业务主角提供所需的价值而必须完成的工

作。系统用例由一系列活动组成,它们共同为业务主角生成某些工作。工作流 程通常包括一个基本工作流程和一个或多个备选工作流程。工作流程的结构使

用活动图来进行说明。

工作流程活动图用于研究实现业务目标时所要执行的各项任务或活动的 顺序安排。活动既可以是手动执行的任务,也可以是自动执行的任务i它可

完成一个工作单元【明。

在UML中,用例描述可以是文字性的,也可以用活动图来进行说明。文

字性描述模板叫用况规约。活动图类似于流程图,它描述了执行某个功能的活 动。使用活动图来描述用况,比用况规约更直观。

(1)“登陆系统”用例的活动图如图3.5所示。

各分店管理员打开系统登录界面后,根据自己的店号输入,执行登录过

程。

t

图3.5“登录系统”用况的活动图

(2)“采购单录入”用况的活动图如图3-6所示。

采购单录入过程是管理员登录系统后,根据图书信息录入,完成此图书的

采购工作,并保存到数据库。

图3.6“采购单录入”用况的活动图

(3)“销售单录入”用况的活动图如图3.7所示。

销售单管理员登录系统后,进入销售单管理界面,执行销售相关业务,并 修改库存量,如果库存量不足提示给管理员,并进行相关的采购工作。

图3·7“销售单录入”用况的活动图

(4)“库存综合查询”用例的活动图如图3.8所示。

管理员登录系统后,进入库存查询页面,输入相关的查询条件关键字执行 查询操作。

图3-8“库存综合查询”用况的活动图

(5)“更改用户密码”用例的活动图如图3-9所示。

图3-9“更改用户密码”用况的活动图

(6)“数据库备份”用况的活动图如图3.10所示。 管理员进入数据备份界面,进行数据备份操作。

图3.10“数据库备份”用况的活动图

21

.Net环境下图书销售系统的设计与开发

第4章图书销售系统总体设计

图书销售系统是基于网络环境的图书信息管理的一个核心系统,它是大中

小型书店日常业务处理的最复杂、最重要的工作流处理系统。它直接体现了书

店的业务职能,是大中小型书店日常业务处理最基本的功能模块。

设计开发的“图书销售系统”,主要功能有:连接服务器;进货管理;业务

管理;信息发送;测试影碟;账目报表:租售管理;库存查询;除此之外,还 具有自己特色功能,如为了提高安全性,设置备份及书店销售网络共享等功

能。

系统主要包括后台数据库的建立及前端应用程序的开发两个方面,对于前

者要求建立起数据一致性和完整性强,安全性好的数据库,但要求处理的信息 量并不大,采用了SQL server 2000进行开发;前端应用程序功能包括登陆退出 系统、进货管理、销售管理、信息发送、测试影碟等,可以浏览图书,入库出 库,并对库存进行查询,另外各书店分店可以进行图书流通、会话与交流,对 提高书店业务工作效率有重要意义。 4.1设计目标

本系统属于大中小型书店的图书销售系统的设计与开发,可以对书店企业 中图书的进销存进行有效管理。通过本系统可以达到以下目标。

口系统采用人机交互方式,界面美观友好、信息查询灵活、方便,数据存储 安全可靠。

口支持多行输入,自动生成编号。

13提高工作效率,降低成本。 口实现各种查询功能。

口对用户输入的数据迸行过滤,当输入有误时提示用户。 口数据保密性强,用户对应不同的操作级别。 口利用报表分析员工销售业绩。 口系统运行稳定、安全可靠。 4.2开发及运行环境

系统开发平台:Microsoft Visual Studio 2005。 系统开发语言:C撑。

数据库管理系统软件:SQL Server 2000。

运行平台:Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003 (SPl)。

运行环境:Microsoft.NET Framework SDK v2.0。 分辨率:最佳效果1024×768像素。

4.3系统总体设计

根据系统需完成的功能,系统主要包括采购入库、销售管理、库存管理、

信息发送、影碟测试、系统设置和帮助模块等功能。 各模块的主要功能如下: 1.采购入库

采购管理员将需要采购的图书信息录入系统,并保存到数据库。

2.销售管理

管理员进入销售管理功能模块,执行销售相关业务。

3.库存管理

管理员登录库存管理模块,选择相关图书查询条件,查看库存图书信息。

4.信息发送

各个分店在各自的业务处理过程中,各店管理员可以通过此模块进行信息

交流。

5.影碟测试

书店企业信息技术部人员可以通过该模块进行图书光盘的测试。。

6.系统设置

超级管理员通过此模块授权登录用户,及系统数据库登录信息的修改等。

7.帮助模块

给管理员用户提供相关的操作信息提示。 4.4系统界面模型

(1)登录模块

系统登录主要用于对进入图书销售系统的用户进行安全性检查,以防止非

法用户进入该系统。只有合法的用户,才可以进入系统,同时根据管理员分配

的权限,管理相应的模块。

Net环境下图书销售系统的设计与开发

验证操作员及其密码,主要通过salD{曲R∞dcr对象读取数据库中数据并结

合I储句判断用户输入的操作员、密码是否符台数据库中的操作员和密码。如

果符合则允许登录,并给予相应的权限,否则提示用户非法登录【”】。系统登录 窗体运行结果如图4.1所示。

图4-l登录界面

(2)系统主窗体

主窗体是程序操作过程中必不可少的,它是人机交互中的重要环节。通过

主窗体,用厂|可以调用系统相关的各子模块.快速掌握本系统中所实现的各个 功能。图书销售系统的设计与开发中,当登录窗体验证成功后,用户将进入主 窗体,主窗体被分为3个部分:最上面是系统菜单栏,可以通过它调用系统中的 所有子窗体;菜单栏下面是工具栏,它可以以按钮的形式使用户能够方便地调 用展常用的子窗体;窗体的摄下面用状态栏显示当前登录的用户名以及登录时 闻。主窗体运行结果如图4—2所示(19112“。

(3)采购入库模块

书店售书系统的设计与开发中所有图书信息数据都是从该模块中输入的,

操作人员可以通过该模块对图书进行入库操作。采购单据录入模块运行结果如 图4-3所示。

图4-3采购单据录入界面

Net环境下图书销售系统的设计与开发

(4)销售管理模块

图书销售业务由此模块完成,并可以通过分析报表给出具体的销售员的销 售业绩。销售退货单录入模块运行结果如图4.4所示。

图44销售退货单录入界面

分析报表模块运行结果如图4-5所示。

图4-5分析报表界面

Net环境下图书销售系统的设计与开发

(5)库存管理模块

通过库存管理模块可以实时的给出各个分店库存图书的数目、库存量等相 关信息,方便了图书库存不足时,各个分店之间图书的调配运输。

库存综合查询模块运行结果如图4-6所示。

图4《库存综合查询界面

为了避免系统运行环境及其他人为的原因等造成的系统崩溃等,致使数据

库信息丢失等问题.通过备份管理模块可以及时的保存数据库信息。数据库备

份模块运行结果如图\示驯。

图中7数据库备份界面

Net环境F图书销售系统的设计与开发

(6)系统设置模块

系统设置模块完成供货商信息的录入、操作员信息的录入及权限的授予 等。商家(供货商)管理模块运行结果如图4.8所示。

圈4-8商家(供货商)管理界面

用户(操作员)管理模块只有超级用户才能有权查看.主要是对用户的资 料进行管理,执行添加、删除等操作。用户(操作员)管理模块运行结果如图

4-9所示。

图4-9用户(操作员)管理界面

单击“添加”按钮,便会弹出“添加用户”宙体.添加用户模块运行结果如图4. 10所示。

图4-10掭加用户界面

4.5系统数据模型

数据模型是系统内部的数据结构,企业信息系统中的数据模型,是指它的

E-R图及其相应的数据字典。这里的数据字典包括实体字典、属性字典、关系字 典。E-R图给出了系统的实体关系及实体与属性的表示。数据库设计中的概念数 据模型8PE-R图。数据模型的设计工具与:Power Designer,ER win,Oracle

Designer或Rose中的类图加对象图。利用E-R图,可以更加清晰地描述系统的各 实体间的关系。UML规定,用类图加上对象图来表述数据模型,本系统用类图 描述系统的数据模型。本系统的类关系图如图4.11所示。

本系统表示层宙体类包含About窗体、AddOpemtor窗体、Backup窗体、 CheclOurchase窗体、Login窗体、Cvstomer窗体、F_main窗体、Hireout窗

体、P越sword窗体、purchasdnput窗体、PurchaseSearch窗体、ModifwOpemtor窗 体、SellRq】0rtForm箭体、SellSea∞h窗体、SendInformation窗体、Supplier窗 体、SetOpemtor窗体、vcDTen窗体、StoekSeareh宙体。业务逻辑层逻辑类包含

eustomerDB、resell_detailedDB、resellDB、RoleDB、sell_detailedDB、sellDB、

stoekDB、supplierDB、Warehouse DetailDB、wal'ehouseDB,这些逻辑类提供的

方法分别对应关于相应数据库表的操作。数据存取层包古类DataAeeess,该类 提供对所有数据库表的基本操作,方法供业务逻辑层调用。

图4.11系统类关系图

4.6系统数据库设计

数据库设计是数据库应用开发周期中的一个重要的阶段,也是工作量比较

大的一项工作。随着现代软件的发展,手工分析方式已经很难满足数据库系统 分析的要求,必须借助相应的工具,如Power Designer。在开发“图书销售系统

的设计与开发”时,我们先用Power Designer建立系统数据库概念数据模型

CDM,最后转化为数据库物理数据模型PDM,直到生成具体的物理数据库表

陋】。

Power Designer是Sybasc公司开发的CASE(Computer Aided Software

Engineering)工具。它是一种数据库开发环境,专门提供数据库的需求分析、

概念数据模型CDM(Conceptual Data Model)设计、物理数据模型PDM

(Physics Data Model)设计和数据库建表、建索引、建视图、建存储过程、建

触发器等项功能。

塑J2006年为止,Power Designer已经发展到第12个版本。10多年来它之所以

长盛不衰,原因是它融合了业界最著名的业务流程图BPM(Business Process

Management)、实体一关系图E.R(Entity.Relationship)、统一建模语言UML

(Unified Modeling Language)等多项建模技术,为用户提供了一个统一的企业

数据库建模空间,并且实现了各类模型之间的灵活转换机制。不仅如此,在它

的高级版本中,又新增了对Sybasc Replication Server MobiLink数据同步功能的

模型定义,以及对EJB Web Services等新技术的支持特点。

Power Designer不仅加速了开发的过程,也向最终用户提供了管理和访

问项目的信息的一个有效的结构。它允许设计人员不仅创建和管理数据的结

构,而且开发和利用数据的结构针对领先的开发工具环境快速地生成应用对 象和数据敏感的组件。开发人员可以使用同样的物理数据模型查看数据库的

结构和整理文档,以及生成应用对象和在开发过程中使用的组件。应用对象 生成有助于在整个开发生命周期提供更多的控制和更高的生产率‘231。 Power Designer是一个功能强大而使用简单工具集,提供了一个复杂的

交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的 生成。Power Designer产生的模型和应用可以不断地增长,适应并随着你的

组织的变化而变化。

4.6.1系统数据库需求分析

根据系统需求,要实现图书销售系统的业务功能,数据霹中应该包含如下 一些信息。

●客户的基本信息:用于对客户身份的描述。

●销售信息:日常的销售图书记录。

·销售单明细相关信息:用于表示销售图书与销售单的关系。 ·供货商基本信息:图书进货商家的基本信息。 ●进货单:图书进货的相关记录。

●进货单明细相关信息:用于表示进货图书与进货单的关系。

●商品信息:表示图书的书目信息。

●销售退货信息:表示客户退货图书信息。

·销售退货单明细:退货图书与销售单的关系。

根据需求分析,系统共有9张数据表。

●客户基本信息表:用于保存书店客户信息。

◆销售单信息表:用于保存销售图书信息。

销售单明细表:存放销售图书的明细信息。 ◆供货商基本信息:存放供货商人基本信息。 ◆进货单信息表:存放进货图书基本信息。 ●进货单明细表:进货图书明细信息。

● 图书商品信息表:存放图书书目基本信息。 ·销售退货信息表:存放退货图书信息。 ●销售退货明细表:存放退货图书明细信息。 4.6.2数据库概念数据模型CDM设计

根据数据库的需求分析,得出数据库的逻辑结构如下: 1.客户基本信息表

客户基本信息表(tb_customcr)用来存放书店客户信息,结构如表4一l所示:

表4.1客户基本信息表

2.销售单信息表

销售单信息表(tb_sell)用来保存销售图书信息,结构如表4—2所示:

表如2销售图书信息表

3.销售单明细表

销售单明细表(tb_sell_detailed)用来保存销售图书的明细信息,结构如表4—3

所示:

表4.3销售单明细表

4.供货商基本信息表

供货商基本信息表(tb_supplier)用来保存供货商人基本信息,结构如表44所

4-4

5.进货单信息表

进货单信息表(tb_warehouse用来保存进货图书基本信息,结构如表4-5所示:

表4.5进货单信息表

6.进货单明细表

进货单明细表(tb_warehouse_detailed)用来保存进货图书明细信息,结构如

表4.6所示:

表4.6进货图书明细表

7.图书商品信息表

图书商品信息表(tb_stock)用来保存图书书目基本信息,结构如表4—7所示:

表4.7图书商品信息表

8.销售退货信息表

销售退货信息表(tb.._resell)用来保存退货图书信息,结构如表4-8所示:

表4.8公文信息表

9.销售退货明细表

销售退货明细表(tbresell_detailed)用来存放退货图书明细信息,结构如表4·

9所示:

表4.9销售退货明细表

lO.操作员表

系统操作员表(Role)用来存放操作员相关信息,结构如表4一10所示:

表4.10系统操作员表

图4-ll图书销售系统数据库CDM

利用数据库建模工具Power Designer建立图书销售系统数据库概念数据模

型CDM如上图4.1 1所示。

37

4.6.3数据库物理数据模型PDM设计

图4.12图书销售系统数据库PDM

表与字段分析是建立在实体.关系图基础上的,CDM给出了系统实体关系

图。表与字段分析后就可以利用Power Designer建立物理数据模型PDM了。可以

使用Power Designer l刍带的工具产生表与字段,并建、-Y-PDM,图书销售系统数据 库物理数据模型PDM如图4-12所示。

第5章代码实现

合理的编码结构是系统是否具有生命力的一个重要因素,在设计编码时, 应遵循以下基本原则【24J:

(1)唯一性:每一个自定义变量只能代表系统中的一个含义,避免因使用

混乱而导致的调试运行错误。

(2)合理性:编码的结构要合理,尽量反应编码对象的特征。

(3)规范性:由于较大的系统都是由多人分工合作而完成的,因此,使用

统一的标准和编程习惯是必须的,否则容易造成彼此理解上的混乱,模块间接 口设计不合理,更严重的会直接导致系统开发失败。

(4)可扩充性:编码时要留有足够的备用代码,以适应以后扩充代码的需 要。但备用代码也不能留的过多,以免增加处理难度。 5.1编码语言的选择

本系统的开发平台是Windows Visual Studio 2005,而考虑Nc#与W'mdows

Visual Studio 2005的完美结合性,选择C捍作为编码语言,也是无可非议的了。

C撑是一种现代的面向对象的程序开发语言。.NET提供了大量的工具与服

务,能够最大限度的发掘和使用计算及通信能力。它使得程序员能够在.NET平 台下快速开发出所需要的应用程序。并且它的面向对象设计和从构建组件形成 的高层商业对象到高级系统级的应用程序都是一流的。与C和C++相比较,C捍比 它们更加简洁,更加高效。C群没有丢失C和C++的基本特征_÷强大的控制能力和

高度的灵活性瞄】【26】。

C群是专门为.NET的应用而开发的语言,这从根本上保证了C群与.NET的完 美结合。C撑具有语法简洁、面向对象设计、完善的安全性和错误处理和高度的 灵活性和兼容性等优点。

C撑保留了对底层操作系统API的直接调用和指针,普通应用都是调用.Net的 程序集,对于速度敏感,或者平台相关型应用,直接通过特定声明来调用

Windows API,开发效率和速度都兼顾,解决了各种各样的应用层问题和系统层

问题;C群与Java有着明显的不同,它借鉴-j\的一个特点,与COM(组件对 象模型)的直接集成:在W'mdows平台上.Net CLR比Java的JRE速度快;基于C撑语 言的Visual.Net Studio开发工具IDE功能齐全,更加优秀;企业开发方面,C群需

要SQL Server,I【s和MTS的配合。由于剑只管SQL ServergIIS,甚至只管IE浏

览器,所以Visual.Net Studio更加便捷,整个开发过程一体化.不用考虑其它的 实现。综合考虑采用c#语言Net环境开发周期短.功能齐全,符合我们的要求

拉1【蚓f矧。

5.2数据存取层设计与实现

如前文所述,在本系统的体系结构上,数据存取层位于数据存储层和业务 服务层之间,通过对ADONet数据访问类的封装,实现了对数据库中的数据的 访问。在表现形式t,该层表现为Net类库项目,该项目编译后生成动态链接 库(d11)。其他项目蔫要调用此类库时.只要将该动态链接库文件复制到相应 bin文件中,就可进行使用了。

该系统中数据存取层完成对数据库表的操作,由类DataAeeess实现,其类

圈如图5-I所示。

图5.1类DataAccess

其中类DataAccess主要方法的实现如下:

(1)GetConuectionO方法

功能:获取数据库连接对象。

具体代码实现如下:

public staticSqlConneetionGetConnection0

f

My con=newSqlConnection(”Server=t270 0l;uid=sa;pwd=:

database曷dangdang”X驯喟sqlco吼酬ion对象与指定的数据库相连接

My_con.OpenO;,/打开数据库连接

i℃OJrn My_con;,,返回SqIConnection对象的信息

}

(2)GetDataSet方法

功能:从数据库表中获取数据集。

.Net环境下图书销售系统的设计与开发

实现步骤:

①创建DataSet对象Ds:

②调用SqlDataA蛳方法获取SqlD稚嘶ter对象sda:

③为SqlDataAdapter对象添加相应参数; ④执行sda.Fill,将数据填充到Ds; ⑤释放所占用的系统资源。

public DataSet GctDataSet(string Sql,string tablename)

{

SqlConnection Con=this.GetConnectionO: SqlDataAdapter sda=new SqlDataAdapter(Sql,Con); DataSet Ds=new DataSetO;

sda.Fill(Ds,tablename);

return Ds:

(3)ExcuteSql方法

功能:执行Sql操作。 实现步骤:

①调用GetConnection方法获取SqlConnection对象: ②调用SqlCommand方法获取SqlCommand对象; ③为SqlCommand对象添加相应参数; ④循环添力ISql语句查询条件变量: ⑤返回查询结果。

public int ExcuteSql(string Sql,SqlParameter[]paras)

{

SqlConnection Con=this.GetConnection0; SqlCommand Cmd=new SqlCommand(Sql,Con);

foreach(SqlParameter P in paras) {

Cmd.Parameters.Add(p);

}

Con.Open0;

int Count=Cmd.ExeeuteNonQuerYO;

Con.CloseO;

retum Count;

}

5.3业务逻辑层设计与实现

从该系统的体系结构上,业务逻辑层位于数据存取层和表示层之间,其主

要任务是负责接收表示层的数据请求,将这此请求进行必要的业务逻辑检查,

然后将请求分解成不同的数据层操作,由数据层中的相应模块进行处理,处理后.将处理结果返回给表示层。业务服务层封装了系统的核心业务逻辑,在系 统中起着承上启下的作用,其良好的设计是系统成功的保证。

业务逻辑层操作基本和相应数据库表的操作相对应。和某个表相关的查

询、删除、更新方法都封装在该表对应的业务逻辑类中。下面以操作员登陆、 采购业务综合查询为例说明业务逻辑层类的设计。

1、登陆身份验证

操作员登陆要进行身份验证,需要对操作员表Role设计业务逻辑类

RoIeDB.该类提供GetRolcs、VefifyCi№dentials方法,功能分别为获取操作员信

息、身份验证。操作员登陆窗体Login通过调用业务层RoleDB类来实现登陆操 作。RoleDB该类如下图5-2所示。

国5-2类RoIeDB

GetRoles方法实现过程:调用数据存取层DataAccess类GetDataSet方法获 取数据集信息。

VerifyCrcdendals方法实现过程:调用数据存取层DalaAceess类Excute— scale方法进行身份验证。VeilfyCredentials方法代码如下:

public beolVerifyCredentials(stringttserName,stringpassword)

{

DataAccessda=newDstaAccessO.J/g,J建DataAcccss实例

stringSql=”select count(-、fromRoleswhereUserName=@usemame”+”and

Password=@pwd”,借ql查询语句

SqIPararaeter[1 paras_ncw SqlP曲ameter[2];//查询条件变{i}赋值

pamsl0]=new

Sqlp㈣nc”

@uscmante\;

paras[1卜new SqlParamelcr(”@pwd\;

intflag=(int)d&ExcuteSeale(Sql,paras)J/该方法查询数据库核对

if(flag—n

{

mmmtrue;//正确返同真值

1

Net环境下圈书销售系统的设计与开发

else

{

lttom铷se; ) }

2、采购业务综合查询

采购业务综合查询操作需要查询数据库进货单明细表(tbwarehouse_

detailed)。可对进货单明细表设计业务逻辑类Warchousc_DctailDB,该类提供

GetWarehouseDetail、CreateWatehouseDetail,功能分别为得到进货单明细表数

据集或符合条件的进货单明细表数据集、插入进货单明细表信息。操作员操作 今日盘点窗体模块、采购业务综合查询窗体模块时通过调用业务层

Warehouse_DctailDB类的GetWarehouseDetail方法来实现盘点信息、信息采购 业务查询,图书商品信息录入模块通过CreateWatehou∞Detail方法完成对进货 单明细表信息的插入。Wafehouse DetailDB该类如下圈5-3所示。

图5-3 类Warehouse_DetialDB

(1)Ge!tWarehouseDetail方法

功能:得到进货单明细表数据集。 实现步骤:

①获取数据存取层DataAccess实例对象; ②创建Sql查询语句;

@调用数据存取层DataAcccss实例方法GetDataSet获取数据集 代码实现如下:

public Dans札GetWarehouseDetai]0

{

DalaAcccssda=ncwDataAcce《);

stringSql 2。select+fromtb warehouse_detailed”:

DataSetDs=da.GetDataSet(Sql,’tb_warchcuse_detailed”);

/℃*dlmDs;

.Net环境下图书销售系统的设计与开发

(2)GetWarehouseDetail方法,重载方法(1)。 功能:得到符合条件的进货单明细表数据集。

实现步骤:

①获取数据存取层DataAccess实例对象; ②创建Sql查询语句:

③Sql查询语句条件数组,依次赋值;

④调用数据存取层DataAccess实例方法GetDataSet获取数据集。 代码实现如下:

public DataSet GetWarehouseDetail(string barCode,string book,string supplier, string type)

{

DataAccess da=new DataAccess0;//获取数据存取层DataAccess实例

string Sql=”select·from tb_warehouse_detailed where BarCode=@barCode”+”and

Book--@book”+I.and SuppJieF@supplier’’+I.and Type=@type”;//Sql查询语句

SqlParameter[】paras=new SqlParameter[4];//Sql.查询语句条件数组,//依次赋值 paras[0】=new SqlParameter(”@barCode”,barCode); paras[1]=new SqlParameter(”@book\;

paras[2】=Hew SqlParameter(”@supplier”,supplier); paras[3]=new SqlParameter(”@type”,type);

DataSet Ds=da.GetDataSet(Sql,”tb_warehouse detailed II,paras);

//调用数据存取层DataAccess实例方法GetDataSe获取数据集。

return Ds;

}

(3)CreateWarehouseDetail方法

功能:插入进货单明细表信息。

实现步骤:

①获取数据存取层DataAccess实例对象; ②创建Sql查询语句;

③Sql查询语句条件数组,依次赋值;

④调用数据存取层DataAccess实例方法ExcuteScale完成Sql操作,并返回

flag标志。

代码实现如下:

public void CreateWarehouseDetail(string wareDetailFlowlD,string barCode,string booL string publisher,string type,string supplier,int amount,float prchasingPrice,float

price,datetime dateTime)

{//Sql查询语句

string Sqi=”Insert into Orders(WareDetailFlowlD,BarCode,Book,Publisher,Type,

Supplier,Amount,Prchasing,Price,DateTime)”+It values(@wareDetailFlowlD,

@barCode,@book,@publisher,@type,@supplier,@amount,@prchasingPrice,

@price,@dateTime)”;

SqlParameter[】paras=new SqlCeParameterfl0];//Sql杏.询语句条件数组,,,依次赋值 paras[0】=new Sc IParameter(”@wareDetailFIowlD”,wareDetailFIowlD); par4s【l】=new Sc IParameter(”@barCode”,barCode);

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

Top