登陆注册
8724600000038

第38章 软件工程实例——构件库管理系统(2)

2.时序图

英文描述:AddComponentInformation。

中文描述:这是一个添加一个新的构件及其基本信息的时序图。

英文描述:QueryComponent。

中文描述:这是一个查询功能时序图。

英文描述:DownloadComponent。

中文描述:这是一个下载功能时序图。

英文描述:Class,Superclass,ClassbaseQuery。

中文描述:这是一个对构件中的类及其父类和基类的查询时序图。

英文描述:AddClassInformation。

中文描述:这是一个添加新类及其属性、方法、事件、基本信息的时序图。

英文描述:QueryClassInformation。

中文描述:这是一个查询类信息(包括它的属性、方法、事件、基本信息)的时序图。

3.类图

8.3.3网页结构图

提示:当登录以后,登录界面屏蔽,只出现管理员权限界面。

8.4项目实现

8.4.1主要技术攻关

技术1:TreeView

①建立三张视图。view_Function录入数据ComponentName,ComponentFuctionName,CompoentIntroduction;view_Version录入数据ComponentName,ComponentVersion,VersionID;view_Class录入数据ComponentName,ClassName,ComponentVersion。

②count=”selectCount(ComponentFunctionID)fromtb_ComponentFunction”语句计算第一层循环的跳出条件数,把表中读取的第一条记录赋给item.text,进入第二层循环,用count=”selectCount(ComponentName)fromview_FunctionwherecomponentFunctionName=’”+item.Text+”’”语句计算该层的跳出条件数,把表中读取的第一条记录赋给item1.text,进入第三层循环,用count=”selectCount(Componentversion)fromview_VersionwhereComponentName=’”+item1.Text+”’”语句计算第三层的跳出条件数,把表中读取的第一条记录赋给item2.text,进入第四层循环,用count=”selectCount(ClassName)fromview_ClasswhereVersionID=’”+versionID+”’”语句计算第四层的跳出条件数,把表中读取的第一条记录赋给item3.text。

③对每一个功能、构件、版本叶子节点的添加,应在其各自内循环跳出后,用item(n).nodes.add(item(n+1))语句添加节点。

④用item.text添加功能、构件、版本及类这些节点时,要加入item.NavigateUrl语句,指定该节点所连接的网页,并在另一个frame里显示。

技术2:构件查询

①在HTML语言里加入如下语句NavigateUrl=’<;%#”CategoryOfComponent.aspx?CategoryName=”+DataBinder.Eval(Container.DataItem,”CategoryName”).tostring%>;’Target=”qmain”>;这样就可以在HTML里传参数了。

②针对TextBox失去焦点问题。

方案一:在HTML语言中,在HYPERLINK控件的声明中编写一个ONCLICK事件。

方案二:将关键字查询放在下面那个FRAME中(即将关键字查询功能放在每一个出现在下面FRAME中的网页中),然后将HYPERLINK换成LINKBUTTON,因为LINKBUTTON有ONCLICK事件,但是没有TARGET这个属性,也就是不能用LINKBUTTON来指定调用的FRAME位置,它只能在其出现的FRAME中自身调用网页,所以只能将关键字查询功能放在下面的FRAME中。

8.4.2网页截图

8.4.3主要源代码

1.添加基本信息页面

说明:以下代码为添加作者信息的vb代码,产品类型(wfrmProType.aspx),操作系统(wfrmOS.aspx),构件功能(wfrmFun.aspx),构件类别(wfrmCate.aspx)和相关项目(wfrmProject.aspx)的页面代码与之相仿。

Imports System.Data

Imports System.Data.SqlClient

Public Class wfrmAuthor

Inherits System.Web.UI.Page

Protected WithEvents Label2 As System.Web.UI.WebControls.Label

Protected WithEvents lblMessage As System.Web.UI.WebControls.Label

Protected WithEvents Label1 As System.Web.UI.WebControls.Label

Protected WithEvents lblError As System.Web.UI.WebControls.Label

Protected WithEvents Label6 As System.Web.UI.WebControls.Label

Protected WithEvents btnAdd As System.Web.UI.WebControls.Button

Protected WithEvents btnEdit As System.Web.UI.WebControls.Button

Protected WithEvents btnSave As System.Web.UI.WebControls.Button

Protected WithEvents btnCancel As System.Web.UI.WebControls.Button

Protected WithEvents lblSave As System.Web.UI.WebControls.Label

Protected WithEvents lblAuthID As System.Web.UI.WebControls.Label

Protected WithEvents txtAuthName As System.Web.UI.WebControls.TextBox

Protected WithEvents txtAuthDes As System.Web.UI.WebControls.TextBox

Protected WithEvents Mydatagrid As System.Web.UI.WebControls.DataGrid

#Region”Web窗体设计器生成的代码”

’该调用是Web窗体设计器所必需的。

Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object,ByVal e As System.EventArgs)

Handles MyBase.Init

’CODEGEN:此方法调用是Web 窗体设计器所必需的

’不要使用代码编辑器修改它。

InitializeComponent()

End Sub

#End Region

Private startIndex As Integer

Private Sub MYbind()

Dim MyConnection As SqlConnection

Dim MyCommand As SqlDataAdapter

MyConnection=New SqlConnection(”server=(local);database=ComponentSystem;

Trusted_Connection=yes”)

MyCommand=New SqlDataAdapter(”select AuthorID,AuthorName from tb_Author”,My—Connection)

Dim ds As DataSet

ds=New DataSet()

MyCommand.Fill(ds,”tb_Author”)

Mydatagrid.DataSource=ds.Tables(”tb_Author”).DefaultView

Mydatagrid.DataBind()

End Sub

Private Sub save()

If(Page.IsValid)Then

Dim myConn As New SqlConnection(”server=(local);database=componentSystem;Trusted_Connection=yes”)

myConn.Open()

Dim StrSQL As String

StrSQL=”Select AuthorName From tb_Author Where AuthorName=’”+Trim(txtAuthName.

Text)+”’”

Dim myCommand As SqlCommand=New SqlCommand(StrSQL,myConn)

Dim reader As SqlDataReader

reader=myCommand.ExecuteReader()

If reader.Read()Then

lblError.Text=”*该作者已存在!”

reader.Close()

Exit Sub

Else

reader.Close()

StrSQL=”INSERT INTO tb_Author(AuthorID,AuthorName,AuthorInstruction)VALUES(’”+lblAuthID.Text+”’,’”+txtAuthName.Text+”’,’”+txtAuthDes.Text+”’)”

myCommand=New SqlCommand(StrSQL,myConn)

myCommand.ExecuteNonQuery()

lblError.Text=””

lblSave.Visible=True

lblSave.Text=”*注册成功!”

MYbind()

txtBox_init()

btnSave.CommandArgument=””

End If

myConn.Close()

End If

End Sub

Private Sub update()

If(Page.IsValid)Then

Dim myConn As New SqlConnection(”server=(local);database=componentSystem;Trusted_Connection=yes”)

myConn.Open()

Dim StrSQL As String

Dim myCommand As SqlCommand

StrSQL=”update tb_Author set AuthorInstruction=’”+txtAuthDes.Text_+”’where AuthorName=’”+lblAuthID.Text+”’”

myCommand=New SqlCommand(StrSQL,myConn)

myCommand.ExecuteNonQuery()

lblError.Text=””

lblSave.Visible=True

lblSave.Text=”*修改成功!”

txtBox_init()

btnSave.CommandArgument=””

myConn.Close()

MYbind()

End If

End Sub

Private Sub txtBox_init()

txtAuthName.ReadOnly=True

txtAuthDes.ReadOnly=True

btnSave.CommandArgument=”Add”

btnEdit.Enabled=False

btnAdd.Enabled=True

btnSave.Enabled=False

btnCancel.Enabled=False

lblMessage.Visible=True

lblError.Text=””

lblMessage.Text=”*单击添加、新增作者”

End Sub

同类推荐
  • 中国移动智能手机的秘密

    中国移动智能手机的秘密

    《中国移动智能手机的秘密》是一本关于移动终端和移动互联网的科普书。作者将这18年通信行业中的学习、思考、实践积累成《中国移动智能手机的秘密》与大家分享。书本系统总结了手机的发展历史、TD产业界“从2G向3G演进”的移动终端产业分化重组进程、智能手机的使用方法用方法和应用指南,以及对移动互联网发展独特思考。
  • FlashCS动画制作基础

    FlashCS动画制作基础

    适合爱好flash动画制作的初、中级读者作为入门学习的参考书,还可以供从事网页制作与动画设计的人员参考,同时也可以作为初、中级电脑短训班的培训教材,对有一定经验的flashcs5使用者也有很高的参考价值。
  • 都是网络惹的祸

    都是网络惹的祸

    本书分网络游戏、网络聊天、网络隐私、网络网吧安全、网络文化、网络语言、网络犯罪、网络陷阱等栏目,从不同的视角探讨了在当今社会的网络现象。
  • 如何建设网站

    如何建设网站

    本书以问答的方式介绍了建设网站的基本知识,内容包括:网站设计的八个步骤、建设网站需要掌握的工具软件、网页中插入图像、在网页中隐藏内容等。
  • 组态软件控制技术

    组态软件控制技术

    监控组态软件是完成数据采集与过程控制的专用软件,它以计算机为基本工具,为实施数据采集、过程监控、生产控制提供了基础平台和开发环境。本书从应用角度出发,详细介绍了组态软件应用程序的开发过程。对窗口界面编辑、动画链接、实时和历史趋势、安全机制、I/O设备连接,以及生产应用等内容都做了非常详细的介绍。MCGS是优秀的监控组态软件之一,它功能强大、使用方便,可以非常容易地实现监视、控制、管理的各项功能,并可提供软、硬件的全部接口,方便、快速地进行系统集成,构成不同需求的数据采集与监控系统。本书可作为高等学校计算机应用、自动控制、电子技术、机电技术专业的教材,同时还可作为相关专业工程技术人员的自学用书。
热门推荐
  • 情蛊翩翩

    情蛊翩翩

    小乞丐莫雨泽,从一无所有到荣华富贵,开启他的传奇人生。
  • 绝宠腹黑小冤家

    绝宠腹黑小冤家

    他们是青梅竹马,是邻居,还没出生便被自家母上大人给定下婚约,可是这两的性格都一样不爱说话,但是两位母上大人依然YY着。不过……有时也会破功……“凌筱伊!你在我的房间做了什么!”“没什么呀……就是看到几只小昆虫,无家可归,我就给它们找了一个家……”“你确定是几只?!”她无辜地眨了眨眼,点点头,心里偷乐。
  • 魔武废材机械帝

    魔武废材机械帝

    身在魔法和武技盛行的世界,可是却偏偏天生和魔武绝缘!为此,霍佑一度想要轻生。然而穿越自带的机械基地在他最低落的时候,改变了他的命运,让他走上了一条和所有人都不一样的道路。不是只有魔法和武技才能铸就传说,机械一样可以!这是一个魔物废材一步步成为大陆救星的传奇经历。
  • 修仙之人冯春洋

    修仙之人冯春洋

    在一个修仙世界里有个叫冯春洋的小伙,他喜怒无常,语无伦次,本书讲述了他的日常
  • 正统临戎录

    正统临戎录

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 十一职阶之刃

    十一职阶之刃

    『theBladeofElevenClasses(十一职介之刃)』◇此身执天野策、过刀山身浴火…烈风袭此身之心魔、欲绝以失自我。让梦境破幻了、让世界崩溃了!此心望穿彼岸末色、徒为伊之情魄。——『情魄』
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • exo你是光芒温暖流年

    exo你是光芒温暖流年

    “应该让你怎么个死法呢?”女孩戴着手套的手比划着面前瘫倒在地上、脸色惨白的男人,“啊...有了。”她晃着不知从哪拿出的手术刀,在月色的照耀下闪着寒光显得十分渗人“放心,我一定让你更有意义的死去。”女孩缓缓地靠近那个已经奄奄一息的男人,轻笑了一声。良久,她看着垃圾桶向外露出的手臂,笑容不自觉的加深。她拿起一旁废墟中的铁棍将垃圾往里塞了塞。这就是...不经我的允许就将我“带走”的下场啊。如果下辈子投胎还是人的话,千万不要再做这样的事了啊。“我先走了,祝你...好运。”女孩说完转身从胡同里走了出去,手里似乎把玩着什么。一辆垃圾车经过胡同,从车上下来一个人将垃圾桶搬上车然后匆匆地开走了。
  • 迟迟I金穗

    迟迟I金穗

    《阴阳师》、《决战平安京》衍生同人小说。