实验七列表页面设计与实现.docx

上传人:b****6 文档编号:8762706 上传时间:2023-02-01 格式:DOCX 页数:29 大小:434.76KB
下载 相关 举报
实验七列表页面设计与实现.docx_第1页
第1页 / 共29页
实验七列表页面设计与实现.docx_第2页
第2页 / 共29页
实验七列表页面设计与实现.docx_第3页
第3页 / 共29页
实验七列表页面设计与实现.docx_第4页
第4页 / 共29页
实验七列表页面设计与实现.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

实验七列表页面设计与实现.docx

《实验七列表页面设计与实现.docx》由会员分享,可在线阅读,更多相关《实验七列表页面设计与实现.docx(29页珍藏版)》请在冰豆网上搜索。

实验七列表页面设计与实现.docx

实验七列表页面设计与实现

实验七、列表页面设计与实现

一、教学目的

1.掌握三层架构应用程序的开发。

2.GridView控件的使用。

二、实验内容

1.以网上书店的数据库BookShop中的Storage表为例设计一个显示商品信息的列表功能,并能进行修改,删除及详细信息查询,设计界面效果如下图:

分析一下,本界面执行思路如下:

(1)打开页面时,选择某分类后,可以立刻显示该类的库存商品信息,如图所示;

(2)当选中某行或者某几行复选框时,直接点“批量删除”可以实现多条记录同时删除;

(3)当点“全选”复选框时,下面所有的行的复选框将被选中,然后可以执行“批量删除”;

(4)点“新增书籍”时,可以进入添加新书的页面;

(5)点某行的书名时,可以查看该记录的详细内容;

(6)点“修改”功能时,可以进入修改书籍的页面;

(7)点某行的“删除”功能时,可以立该删除该行记录;

我们对上面七条的操作进行总结,共有七个动作。

2.首先在Entity文件夹中定义一个专门针对Storage表操作的Storage实体类。

3.再根据前面总结的七个方法,发现要进行数据库操作的方法有七个。

针对CatogoryTable表的操作已经实现,不再考虑,并且执行批量删除时可以通过循环删除单条记录的方法实现,所以实际上对数据库的操作只需要实现五个方法即可,实现方法如下,在业务逻辑层和数据访问层中添加如下五个方法,并实现代码:

publicboolAddStorage(Storagegoods)方法

publicStorageGetModel(intsid)方法

publicDataSetGetStorageByCategoryID(intcategoryID)方法;

publicboolModifyStorage(Storagegoods)方法;

publicboolDeleteStorageByID(intID)方法。

4.新建五个存储过程,用于读取指定分类的库存商品信息、获取指定一条记录、添加一条记录、修改指定的记录、删除指定的记录,即无外乎增、删、查、改操作。

5.最后进入界面下的后台,对界面分析的七个动作进行逻辑设计即可完成。

三、仪器、设备、材料

微机(VS2005)

四、实验准备

1.理论知识预习及要求

ASP.NET应用程序开发的一般步骤。

类设计的一般步骤。

2.实验指导书预习及要求

先在草稿纸上编写主要程序代码,再上机调试。

3.其他准备

五、实验原理或操作要点简介

1.ASP.NET应用程序开发的一般步骤。

2.掌握三层开发的一般方法。

六、注意事项

⏹及时保存文件,避免死机或断电造成的文件丢失。

⏹实验过程中容易出现的问题:

1.机房装有2个操作系统。

注意选择第二个“应用软件编程系统”。

2.新建项目时,注意选择项目类型“C#”。

3.在C#.NET,窗口比较多,操作不当破坏了窗口的布局后,可通过“工具|选项”命令,在其对话框中选择“重制窗口布局”,恢复默认布局。

七、实验过程与指导

实现步骤如下:

步骤一:

在数据库中添加五个存储过程,代码如下:

//添加商品

CREATEPROCEDUREdbo.AddStorage

@NameNVarChar(500),

@TypeIDInt,

@ImageNVarChar(500),

@WriterNVarChar(500),

@PublisherNText,

@PublishDateDateTime,

@PublishTimesInt,

@ISBNNVarChar(50),

@PageCountInt,

@Pricefloat,

@IntroNText,

@ContentsNText,

@StorageCountInt,

@GoodsIDIntOutput

AS

INSERTINTOStorage

(SName,STypeID,SImage,SWriter,SPublisher,SPublishDate,SPublishTimes,SISBN,SPageCount,SPrice,SIntro,SContents,SStorageCount)

VALUES

(@Name,@TypeID,@Image,@Writer,@Publisher,@PublishDate,@PublishTimes,@ISBN,@PageCount,@Price,@Intro,@Contents,@StorageCount)

SET@GoodsID=@@IDENTITY

//通过ID号获取商品

CREATEPROCEDUREdbo.GetStorageBySID

@SIDInt

AS

SELECT*FROMStorageWHERESID=@SID

//通过分类号获取商品

CREATEPROCEDUREdbo.GetStorageByCategoryID

@CategoryIDInt

AS

SELECT*FROMStorageWHERESTypeID=@CategoryID

//修改商品

CREATEPROCEDUREdbo.ModifyStorage

@NameNVarChar(500),

@ImageNVarChar(500),

@WriterNVarChar(500),

@PublisherNText,

@PublishDateDateTime,

@PublishTimesInt,

@ISBNNVarChar(50),

@PageCountInt,

@Pricefloat,

@IntroNText,

@ContentsNText,

@StorageCountInt,

@GoodsIDInt

AS

UPDATEStorage

SET

SName=@Name,

SImage=@Image,

SWriter=@Writer,

SPublisher=@Publisher,

SPublishDate=@PublishDate,

SPublishTimes=@PublishTimes,

SISBN=@ISBN,

SPageCount=@PageCount,

SPrice=@Price,

SIntro=@Intro,

SContents=@Contents,

SStorageCount=@StorageCount

WHERESID=@GoodsID

//删除商品

CREATEPROCEDUREdbo.DeleteStorageByID

@IDint

AS

deletefromStoragewhereSID=@ID

return

步骤二:

由于针对CatogoryTable表的CatogoryTable实体类前面的实验已经实现,这里不再实现,只定义一个针对Storage表的Storage实体类代码如下:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.HtmlControls;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Xml.Linq;

///

///Storage的摘要说明

///

publicclassStorage

{

int_SID;

publicintSID

{

get{return_SID;}

set{_SID=value;}

}

string_SName;

publicstringSName

{

get{return_SName;}

set{_SName=value;}

}

int_STypeID;

publicintSTypeID

{

get{return_STypeID;}

set{_STypeID=value;}

}

string_SImage;

publicstringSImage

{

get{return_SImage;}

set{_SImage=value;}

}

string_SWriter;

publicstringSWriter

{

get{return_SWriter;}

set{_SWriter=value;}

}

string_SPublisher;

publicstringSPublisher

{

get{return_SPublisher;}

set{_SPublisher=value;}

}

DateTime_SPublishDate;

publicDateTimeSPublishDate

{

get{return_SPublishDate;}

set{_SPublishDate=value;}

}

int_SPublishTimes;

publicintSPublishTimes

{

get{return_SPublishTimes;}

set{_SPublishTimes=value;}

}

string_SISBN;

publicstringSISBN

{

get{return_SISBN;}

set{_SISBN=value;}

}

int_SPageCount;

publicintSPageCount

{

get{return_SPageCount;}

set{_SPageCount=value;}

}

string_SPageSize;

publicstringSPageSize

{

get{return_SPageSize;}

set{_SPageSize=value;}

}

int_SWordCount;

publicintSWordCount

{

get{return_SWordCount;}

set{_SWordCount=value;}

}

float_SPrice;

publicfloatSPrice

{

get{return_SPrice;}

set{_SPrice=value;}

}

string_SIntro;

publicstringSIntro

{

get{return_SIntro;}

set{_SIntro=value;}

}

int_SStorageCount;

publicintSStorageCount

{

get{return_SStorageCount;}

set{_SStorageCount=value;}

}

string_SContents;

publicstringSContents

{

get{return_SContents;}

set{_SContents=value;}

}

DateTime_SInTime;

publicDateTimeSInTime

{

get{return_SInTime;}

set{_SInTime=value;}

}

publicStorage()

{

//

//TODO:

在此处添加构造函数逻辑

//

}

}

步骤三:

定义一个针对Storage表操作的StorageAccess数据访问类,实现五个操作方法,代码如下:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.HtmlControls;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Xml.Linq;

usingSystem.Data.SqlClient;

///

///StorageAccess的摘要说明

///

publicclassStorageAccess

{

DataAccessda=newDataAccess();

publicStorageAccess()

{

//

//TODO:

在此处添加构造函数逻辑

//

}

///

///添加商品

///

///

///

publicboolAddStorage(Storagegoods)

{

SqlParameter[]sqlparams=newSqlParameter[]{

newSqlParameter("@Name",SqlDbType.NVarChar,500),

newSqlParameter("@TypeID",SqlDbType.Int),

newSqlParameter("@Image",SqlDbType.NVarChar,500),

newSqlParameter("@Writer",SqlDbType.NVarChar,500),

newSqlParameter("@Publisher",SqlDbType.NText),

newSqlParameter("@PublishDate",SqlDbType.DateTime),

newSqlParameter("@PublishTimes",SqlDbType.Int),

newSqlParameter("@ISBN",SqlDbType.NVarChar,50),

newSqlParameter("@PageCount",SqlDbType.Int),

newSqlParameter("@Price",SqlDbType.Float),

newSqlParameter("@Intro",SqlDbType.NText),

newSqlParameter("@Contents",SqlDbType.NText),

newSqlParameter("@StorageCount",SqlDbType.Int),

newSqlParameter("@GoodsID",SqlDbType.Int)

};

sqlparams[0].Value=goods.SName;

sqlparams[1].Value=goods.STypeID;

sqlparams[2].Value=goods.SImage;

sqlparams[3].Value=goods.SWriter;

sqlparams[4].Value=goods.SPublisher;

sqlparams[5].Value=goods.SPublishDate;

sqlparams[6].Value=goods.SPublishTimes;

sqlparams[7].Value=goods.SISBN;

sqlparams[8].Value=goods.SPageCount;

sqlparams[9].Value=goods.SPrice;

sqlparams[10].Value=goods.SIntro;

sqlparams[11].Value=goods.SContents;

sqlparams[12].Value=goods.SStorageCount;

sqlparams[13].Direction=ParameterDirection.Output;

intresult=da.ExecuteNonQuery("AddStorage",sqlparams);

if(result>0)

{

goods.SID=Convert.ToInt32(sqlparams[13].Value);

returntrue;

}

else

returnfalse;

}

///

///根据分类ID获取货物列表

///

///

///

publicDataSetGetStorageByCategoryID(intcategoryID)

{

SqlParameter[]sqlparams=newSqlParameter[]{

newSqlParameter("@CategoryID",SqlDbType.Int),

};

sqlparams[0].Value=categoryID;

returnda.ExecuteQuery("GetStorageByCategoryID",sqlparams);

}

///

///获取一个商品对象实体

///

///

///

publicStorageGetModel(intsid)

{

SqlParameter[]sqlparams=newSqlParameter[]{

newSqlParameter("@SID",SqlDbType.Int),

};

sqlparams[0].Value=sid;

DataSetds=da.ExecuteQuery("GetStorageBySID",sqlparams);

Storagegoods=newStorage();

if(ds.Tables[0].Rows.Count>0)

{

goods.SID=int.Parse(ds.Tables[0].Rows[0]["SID"].ToString());

goods.SName=ds.Tables[0].Rows[0]["SName"].ToString();

if(ds.Tables[0].Rows[0]["STypeID"].ToString()!

="")

{

goods.STypeID=int.Parse(ds.Tables[0].Rows[0]["STypeID"].ToString());

}

 

goods.SImage=ds.Tables[0].Rows[0]["SImage"].ToString();

goods.SWriter=ds.Tables[0].Rows[0]["SWriter"].ToString();

goods.SPublisher=ds.Tables[0].Rows[0]["SPublisher"].ToString();

if(ds.Tables[0].Rows[0]["SPublishDate"].ToString()!

="")

{

goods.SPublishDate=DateTime.Parse(ds.Tables[0].Rows[0]["SPublishDate"].ToString());

}

if(ds.Tables[0].Rows[0]["SPublishTimes"].ToString()!

="")

{

goods.SPublishTimes=int.Parse(ds.Tables[0].Rows[0]["SPublishTimes"].ToString());

}

goods.SISBN=ds.Tables[0].Rows[0]["SISBN"].ToString();

if(ds.Tables[0].Rows[0]["SPageCount"].ToString()!

="")

{

goods.SPageCount=int.Parse(ds.Tables[0].Rows[0]["SPageCount"].ToString());

}

if(ds.Tables[0].Rows[0]["SPrice"].ToString()!

="")

{

goods.SPrice=float.Parse(ds.Tables[0].Rows[0]["SPrice"].ToString());

}

goods.SIntro=ds.Tables[0].Rows[0]["SIntro"].ToString();

goods.SContents=ds.Tables[0].Rows[0]["SContents"].ToString();

if(ds.Tables[0].Rows[0]["SStorageCount"].ToString()!

="")

{

goods.SStorageCount=int.Parse(ds.Tables[0].Rows[0]["SStorageCount"].ToString());

}

returngoods;

}

else

{

returnnull;

}

}

///

///根据商品ID号删除指定商品

///

publicboolDelete(intID)

{

SqlParameter[]sqlparams={

newSqlParameter("@ID",SqlDbType.Int,4)};

sqlparams[0].Va

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1