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

2019-03-22 23:29

本系统的开发平台是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);


.Net环境下图书销售系统的设计与开发(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:南自103网络规约(修改版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: