登陆注册
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

同类推荐
  • 科学伴你行-神奇的通信技术

    科学伴你行-神奇的通信技术

    在日常生活中,有时人们要借助于小旗子来进行通信联络,比如,开运动会时,发令员常常要用小旗子与计时员联系;当你乘坐火车进入车站时,都会看到车站工作人员拿着红色和绿色的小旗子在站台上进行指挥;在战争中,打出白色旗子表示投降,插上红色旗子表明胜利;航行在茫茫大海上的船只,双方船员会凭不同旗帜组成的标志,来了解对方的意思。以上种种用小旗子来“说话”的通信方式就叫做旗语。
  • 数字博物馆研究与实践:2009

    数字博物馆研究与实践:2009

    本书汇集了“2009年北京数字博物馆研讨会”与会代表提交的60余篇论文和演讲报告、应用案例,分为数字博物馆(科技馆)发展研究探讨、数字博物馆(科技馆)多样性发展模式、数字技术在博物馆(科技馆)展陈中的应用、数字博物馆(科技馆)建设实践、数字博物馆(科技馆)实现技术和数字博物馆调研报告等六个部分。本书内容囊括了对数字博物馆(科技馆)建设宏观层面的全局思考以及微观层面的具体实践。在宏观层面,介绍了数字博物馆(科技馆)在国内外的发展现状与趋势,通过剖析典型案例,探讨数字博物馆(科技馆)建设的意义、目标、作用、建设原则、要素、特征及目前建设工作中存在的现实问题与对策。
  • 信息技术教育大全-操作系统大全

    信息技术教育大全-操作系统大全

    本书系统介绍说明了有关电子信息系统及操作系统等知识,希望对该信息技术有需求的读者能够从中得到帮助。
  • 一本书读懂24种互联网思维

    一本书读懂24种互联网思维

    本书整合的改变世界的24种互联网思维,让我们对互联网新思维的认识变得立体、系统起来;同时深入浅出、通俗易懂地从技术和实践分析互联网新思维与传统思维相比较的优势,医治互联网焦虑症。未来属于既能深刻理解传统商业的本质,同时又具备互联网思维的人。
  • 信息技术教育大全-计算机网络

    信息技术教育大全-计算机网络

    信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络
热门推荐
  • 名门盛宠:沈少宠妻365次

    名门盛宠:沈少宠妻365次

    “苏暖,烙上了我的印记,这辈子,除了我,你也只能是我的女人!”“我要的,从来就只有你一个人!”沈梓轩唇角的笑意邪魅深邃,他的心早就属于她了。愿得一人心,白首不分离。此生,他只想要她一个人。
  • 我的国民男友

    我的国民男友

    他从书中来,一见面就要谋杀她?喂喂喂,她可是作者,不满意结局可以修改嘛,何必动手动脚!什么国民老公,什么天才大牛,她看他最大的属性应该是老奸巨猾!吃她的用她的住她的,一不小心还将她拉进了穿越阴谋,天呐,又是追杀又是绑架,她可不可以弃坑重来?
  • 云下逐荒录

    云下逐荒录

    当他走向黑暗的时候,谁也不知道这个世界最终会变成什么样。直到天星坠落,人间纷乱。英雄,适时出现。友谊、爱情与功成名就,似乎是故事永远的内容。但这部小说,我会让你看到不一样的故事,以及不是一般的精彩。(新人初次作品,如果你喜欢,请推荐给你的朋友们。)
  • 花千骨续之番外

    花千骨续之番外

    花千骨重生了,却失去记忆和白子画一起住在了花莲村里。这一世的她又会发生什么呢?恢复记忆后会原谅白子画么?敬请关注《花千骨续之番外》,也关注关注月儿的第一部小说《花千骨之永不变的爱恋》哦!
  • 疯魔

    疯魔

    这是一个修真的世界,在这里没有浩瀚的斗气,没有绚丽的武技,这里只是一个真实的关于修真的大陆,在这个平凡的大陆上有仙有魔也有妖,在这平静的水波下一个个波澜壮阔的故事将要展开,我们的主角即将踏上一个惊心动魄的历程!看我们的主角和弟兄们如何一起在凡人修真界征战,在仙界怎样翻手为云,覆手为雨,一步步走上巅峰,历经千难万险,跨越时间、空间,在神界寻求世界的本源。他们不是仙,也不是魔,亦不是妖,他们是仙,也是魔,亦是妖。他们是修真界独特的存在,不求上天怜悯,只追寻心中的道,一心追求武道的最巅峰,他们不尊天,不敬地,他们坚信唯我独尊。非我逆天,乃天逆我!(本文纯属虚构,请勿模仿。)
  • EXO之走到尽头的爱

    EXO之走到尽头的爱

    “颜小晓,我们的爱真的走到尽头了么,难道不可以挽回了么?!””对不起,我真的不记得你是谁了?“她给了他一个落寞的背影。面临再次失忆,她是否会忘记他们对她的伤害,记起那些愉快的过往。EXO之走到尽头的爱~
  • 奴隶革命

    奴隶革命

    随着铁器的广泛性使用,社会生产率得到很大的提高,奴隶主只想给予奴隶们最低的生活资料,这显然已经满足不了奴隶的心灵。长期积累过程中,双方矛盾越来越大,只缺少一个导火索的点燃者。郑丘从睡眠中被摇醒,发现穿越到了一个陌生的奴隶社会之中,冒着随时被砍掉脑袋的风险,试着带领奴隶进行革命,还奴隶们一个自由的世界。一切精彩,尽在书中。
  • 天行

    天行

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

    医妃妃常痞之有凤来仪

    她本是九天玄女,可因为动情魔君而历劫重生。再睁眼,丞相府千金,懦弱、无盐、废柴、花痴?你们确定说的是三小姐?他为了她轮回九世,只为不愿让她一人在人世孤单漂流,再见她、、、某男拉着裙摆说,姐姐,求包养、、、
  • 我就想安静的生活

    我就想安静的生活

    顾念安是个学渣,考高中是作弊考的!走后门进的好学校!顾念安是个乡下人,又土又渣!顾念安啥也不会,不配做顾曼曼的妹妹!然而……京大早在四年前录取了她……她才是顾家的亲生女儿……她,围棋冠军,古筝教授,设计史上最有名的GNAN……我就想安静的生活。都这么难的吗?一朝马甲暴露。众人:是顾曼曼不配做她的姐姐。……