数据库课程设计运动会成绩管理系统_第1页
数据库课程设计运动会成绩管理系统_第2页
数据库课程设计运动会成绩管理系统_第3页
数据库课程设计运动会成绩管理系统_第4页
数据库课程设计运动会成绩管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

说明书题目:运动会成绩管理系统学院:班级:完成人:组号:姓名:XXX学号:XXXX成绩:姓名:XXX学号:XXXX成绩:指导教师:山东科技大学2014年6月27日

课程设计任务书一、课程设计题目:运动会成绩管理系统二、课程设计应解决的主要问题:(按实现的系统功能)(1)运动项目、运动员、运动成绩以及班级名次的记录存储(2)添加修改和删除项目表、运动员表和成绩表信息(3)自动生成班级名次表(触发器)(4)运动员表有改动时,自动更新班级名次表(触发器)(5)成绩表有改动时自动对成绩表中记录按项目排名次(触发器)(6)成绩表自动排名自动更新班级名次表中班级总分(存储过程)(7)更新班级总分之后自动对班级排名(学院名次,学校名次)(存储过程)(8)对成绩表进行初次排名功能(9)通过项目号获得相应项目的排名表(表值函数)(10)通过学号或姓名或运动号获得某学生运动成绩表(表值函数)(11)通过班级名称获得某班所有运动员运动成绩表(表值函数)(12)通过学院名称获得学院所有运动员运动成绩表(表值函数)(13)获得全校所有运动员的运动成绩表(表值函数)(14)获得全校所有班级总分数以及在学院排名和早全校排名(表值函数)任务发出日期:2014-4-25课程设计完成日期:2014-6-27小组分工说明小组编号题目:运动会成绩管理系统小组分工情况:XXX:参与数据库的讨论和设计;搜集整理数据、录入数据;设计了具体的逻辑结构,绘制E-R图;创建数据库以及项目表、运动员表、成绩表和班级名次表;实现了表之间的关联,创建必要的默认值、规则;创建了相应的索引;创建了班级名次表的视图。XXX:参与数据库的讨论和设计;创建某项目名次表值函数;创建触发器实现成绩表的按项目自动排名功能;创建存储过程实现班级名次表的班级总成绩的更新功能;创建存储过程实现班级名次表的排名功能;创建触发器实现运动员表改动时自动更新班级名次表的功能;创建多个表值函数用于实现不同的查询功能:项目查询函数,个人成绩查询函数,班级成绩查询函数,学院成绩查询函数,全校成绩查询函数,全校班级名次查询函数。整个数据库部分的设计共创建了三个触发器,四个存储过程以及七个表值函数。另外还设计了本运动会成绩管理系统的界面部分,以及文档编辑工作。组长签字:年月日指导教师对课程设计的评价成绩:指导教师签字:年月日

目录TOC\o"1-2"\h\u1需求分析11.1数据事实11.2主要用户视图22概念结构设计22.1局部ER图32.2全局ER图33逻辑结构设计44物理结构设计45主要功能详细设计55.1创建数据库55.2创建数据表55.3添加数据(仅以一条为例)65.4数据库完整性75.5成绩表按成绩自动排名(触发器,函数,存储过程)75.6更新clscore表(触发器)125.7成绩表按照项目初始名次135.8查询某个项目的全部成绩和排名(表值函数)145.9查询某个班的运动员成绩(表值函数)145.10查询某个学生的所有成绩(表值函数)155.11查询某个学生的某个项目成绩(表值函数)165.12查询某个学院的运动员成绩(表值函数)165.13查询全校运动员成绩(表值函数)175.14通过学号和运动号查询成绩和名次(存储过程)175.15创建班级成绩和名次视图185.16创建索引186界面设计主要过程186.1界面总体设计196.2登录界面设计196.3成绩管理员界面设计206.4运动员查询界面设计261需求分析本系统是用于管理运动会成绩的系统,要实现的功能就是运动会成绩的增加,修改和删除,同时还应该具有运动员和运动项目的增加修改和删除功能。本系统面向用户有两种:成绩管理员、学生运动员。管理员功能介绍管理员正确登陆后,可以增加、删除、修改、查询运动员信息,比赛项目以及比赛成绩。学生运动员主要功能介绍学生登录后,可以查询(比赛成绩、运动动员信息、运动项目)。1.1数据事实数据实例1.2主要用户视图用户需求成绩管理员登录(正确输入用户名及密码登录)增加、删除、修改、查询运动员信息,比赛项目以及比赛成绩学生登录(默认用户名)查询(比赛成绩、运动动员信息、运动项目)2概念结构设计学生登录管理员登入学生登录学生登录管理员登入学生登录查询查询查询查询查询与修改查询与修改查询查询查询查询查询与修改查询与修改查询与修改查询与修改基本信息查询成绩查询基本信息查询成绩查询基本信息查询成绩查询信息录入基本信息查询成绩查询基本信息查询成绩查询基本信息查询成绩查询信息录入比赛成绩录入添加比赛项目添加学生信息成绩表项目表运动员表全校名次查询全校成绩查询学院成绩查询班级成绩查询项目成绩查询个人成绩查询比赛成绩录入添加比赛项目添加学生信息成绩表项目表运动员表全校名次查询全校成绩查询学院成绩查询班级成绩查询项目成绩查询个人成绩查询2.1局部ER图运动号运动号性别项目二姓名学院学生表学号项目一班级项目表项目表项目号项目名称图1项目表图2学生表成绩表学号成绩表学号项目号成绩名次班级名次表班级名班级得分在学院排名在校排名图3成绩表图4班级名次表mn2.2全局ER图mn学生表学生表项目表成绩表班级名次表选择排名3逻辑结构设计关系模式如下:运动员(学号、姓名、性别、学院、班级、运动号、项目一、项目二)运动项目(项目号、项目名称)成绩(学号、项目号、成绩、名次)班级排名(学院、班级、总成绩、在学院名次、在校名次)4物理结构设计学生表列名数据类型允许空说明SNOInt否学生编号SNameVarchar(50)否姓名SDeptVarchar(50)是系别SClassNOVarchar(50)是班级SportsNOInt否运动编号项目表列名数据类型允许空说明SportsNOInt否项目编号SportsNameVarchar(50)否项目名称项目成绩表列名数据类型允许空说明SNOInt否学生编号SportsNOInt否项目编号ScoreVarchar(50)否成绩Srankint否名次班级名次表列名数据类型允许空说明sdeptnameVarchar(20)是学院sclassnameVarchar(20)否班级sclscoreint是总分sclrankindeptint是学院名次sclrankinschint是学校名次5主要功能详细设计5.1创建数据库CREATEDATABASEsportsON(NAME=运动会数据,FILENAME='D:\SQL\sports.MDF',SIZE=10MB,MAXSIZE=100MB)LOGON(NAME=运动会数据日志,FILENAME='D:\SQL\sports_Log.LDF',SIZE=5MB,MAXSIZE=25MB)5.2创建数据表1、创建项目表usesportscreatetablesp(sportnointNOTNULLPRIMARYKEY,sportnamevarchar(30)notnull)2、创建学生表createtablestu(snointNOTNULLPRIMARYKEY,snamevarchar(10)notnull,sdeptvarchar(20),sclassnamevarchar(20),ssexvarchar(2),spnointnotnullunique,sportno1intforeignkeyreferencessp(sportno)notnull,sportno2intforeignkeyreferencessp(sportno))3、创建成绩表全体运动员的各个项目的成绩表createtablesc(snointFOREIGNKEYreferencesstu(sno),sportnointFOREIGNKEYreferencessp(sportno),scorevarchar(10),srankintprimarykey(sno,sportno))4、创建名次表记录全校所有班级的得分以及在学院的名次和在全校的名次createtableclscore(sdeptnamevarchar(20),--学院名sclassnamevarchar(20)primarykey,--班级名称sclscoreint,--班级成绩sclrankindeptint,--班级在学院中的名次sclrankinschint--班级在学校中的名次)5.3添加数据(仅以一条为例)1、添加运动项目表记录usesportsinsertintospvalues(1,'男子一百'),(2,'男子二百')2、添加学生表记录usesportsinsertintostuvalues(10103,'赵浩','数学','数学一班','男',10001,1,3),(10105,'钱浩','数学','数学一班','男',10002,2,4)3、添加比赛成绩表记录usesportsinsertintosc(sno,sportno,score)values(10103,1,'12.2')5.4数据库完整性1、绑定列上默认值usesportsgocreatedefaultssexas'男'goexecsp_bindefault'ssex','stu.ssex'go2、绑定规则createrulerule_sportnoas@c1between1and12gocreaterulerule_snoas@c1between10101and40340goexecsp_bindrule'rule_sportno','sp.sportno'goexecsp_bindrule'rule_sno','stu.sno'go5.5成绩表按成绩自动排名(触发器,函数,存储过程)功能简介:当sc表有成绩插入删除或者修改时就触发,实现对sc表中单项目名次nrank属性的及时更新,更新完之后,调用存储过程,实现对clscore表中班级成绩和班级排名的更新。5.5.1更新项目名次触发器--触发器及时更新sc表--当有成绩插入删除或者修改sc表时就触发--实现对sc表中单项目名次nrank属性的及时更新usesportsgo插入更新与删除操作sc表ifexists(select*fromsysobjectswherename='trSC'andtype='TR')droptriggertrSCgocreatetriggertrSConscafterinsert,update,deleteasdeclare@sportno0int,@sno0int,@sportno1int,@sportno2intselect@sno0=sno,@sportno0=sportnofrominsertedselect@sportno1=sportno1,@sportno2=sportno2fromstuwheresno=@sno0if@sportno0notin(@sportno1,@sportno2)--if@sportno0!=@sportno1and@sportno0!=@sportno2beginprint'操作有误,此记录与运动员表不一致,请先修改运动员表!'rollbackendelsebegin--更新名次--声明变量declare@snoint,@sportnoint,@rankintdeclareiu_scSportno_cursorCURSORforselectsportnofromspopeniu_scSportno_cursorfetchnextfromiu_scSportno_cursorinto@sportnowhile@@fetch_status=0beginset@rank=1--声明游标declareiu_sc_cursorCURSORforselectsnofromscRankFun(@sportno)--打开游标openiu_sc_cursor--提取第一行fetchnextfromiu_sc_cursorinto@snowhile@@FETCH_STATUS=0beginupdatescsetsrank=@rankwheresno=@snoandsportno=@sportnoset@rank=@rank+1fetchnextfromiu_sc_cursorinto@snoendcloseiu_sc_cursordeallocateiu_sc_cursorfetchnextfromiu_scSportno_cursorinto@sportnoendcloseiu_scSportno_cursordeallocateiu_scSportno_cursorend执行存储过程updateClscore,更新clscore表execupdateClscore goGo测试代码及截图如下:5.5.2计算班级总成绩存储过程存储过程:当sc表名次有变动时,及时更新clscore表中的班级总成绩当sc表有更新时,及时更新clscore表中每个班的总分数usesportsgoifexists(select*fromsysobjectswherename='updateClscore'andtype='P')dropprocedureupdateClscoregocreateprocedureupdateClscoreasbegindeclare@classnamevarchar(20),@srankint,@srankTotalintdeclarecursor_classcursorforselectsclassnamefromstugroupbysclassnameopencursor_classfetchnextfromcursor_classinto@classnamewhile@@FETCH_STATUS=0beginset@srankTotal=0declarecursor_srankcursorforselectsrankfromscwheresnoin(selectsnofromstuwheresclassname=@classname)opencursor_srankfetchnextfromcursor_srankinto@srankwhile@@FETCH_STATUS=0beginif@srank<8set@srankTotal=@srankTotal+(8-@srank)elseset@srankTotal=@srankTotal+0fetchnextfromcursor_srankinto@srankendupdateclscoresetsclscore=@srankTotalwheresclassname=@classnameclosecursor_srankdeallocatecursor_srankfetchnextfromcursor_classinto@classnameendclosecursor_classdeallocatecursor_class执行存储过程,更新clscore表,进行班级排名execupdateClscore_rankendGo测试代码及截图如下:5.5.3班级排名存储过程存储过程:更新clscore表,对clscore表中的班级总成绩分别按学院和学校排名次存储过程,更新clscore表,进行班级排名usesportsifexists(select*fromsysobjectswherename='updateClscore_rank'andtype='p')dropprocupdateClscore_rankgocreateprocupdateClscore_rankasbegindeclare@deptvarchar(20),@classvarchar(20),@rankint在学院排名次declarecursor_deptcursorforselectsdeptnamefromclscoregroupbysdeptnameopencursor_deptfetchnextfromcursor_deptinto@deptwhile@@FETCH_STATUS=0beginset@rank=1declarecursor_classcursorforselectsclassnamefromclscorewheresdeptname=@deptorderbysclscoredescopencursor_classfetchnextfromcursor_classinto@classwhile@@FETCH_STATUS=0beginupdateclscoresetsclrankindept=@rankwheresclassname=@classset@rank=@rank+1fetchnextfromcursor_classinto@classendclosecursor_classdeallocatecursor_classfetchnextfromcursor_deptinto@deptendclosecursor_deptdeallocatecursor_dept在学校排名次declarecursor_classcursorforselectsclassnamefromclscoreorderbysclscoreopencursor_classfetchnextfromcursor_classinto@classset@rank=1while@@FETCH_STATUS=0beginupdateclscoresetsclrankinsch=@rankwheresclassname=@classset@rank=@rank+1fetchnextfromcursor_classinto@classendclosecursor_classdeallocatecursor_classendGo5.5.4项目排名表值函数某项目排名函数表值函数--输入:某个项目的编号--输出:此项目的排序后的运动员学号顺序表usesportsgoifexists(select*fromsysobjectswherename='scRankFun'andtype='TF')dropfunctionscRankFungocreatefunctionscRankFun(@sportnoint)returns@sttable(snoint,sportnoint)asbeginif@sportnoin(3,4,8,10)begininsert@stselectsno,sportnofromscwheresportno=@sportnoorderbyscoredescendelsebegininsert@stselectsno,sportnofromscwheresportno=@sportnoorderbyscoreendreturnendGo5.6更新clscore表(触发器)触发条件:当运动员表stu有变动时,触发功能:根据运动员表stu中的信息,更新clscore表中的学院名和班级名usesportsgoifexists(select*fromsysobjectswherename='trClscoreSTU'andtype='TR')droptriggertrClscoreSTUgo当stu表有变动时,及时更新createtriggertrClscoreSTUonstuafterinsert,update,deleteasbegindeclare@sdeptnamevarchar(20),@sclassnamevarchar(20)declarestuSclassname_cursorcursorforselectsdept,sclassnamefromstuopenstuSclassname_cursorfetchnextfromstuSclassname_cursorinto@sdeptname,@sclassnamewhile@@fetch_status=0beginifnotexists(select*fromclscorewheresclassname=@sclassname)insertintoclscore(sdeptname,sclassname)values(@sdeptname,@sclassname)fetchnextfromstuSclassname_cursorinto@sdeptname,@sclassnameendclosestuSclassname_cursordeallocatestuSclassname_cursorendgogo5.7成绩表按照项目初始名次usesports--声明变量godeclare@snoint,@sportnoint,@countspintset@sportno=1select@countsp=COUNT(*)fromspwhile@sportno<=@countsp--所有项目均要排名begindeclare@rankintset@rank=1--声明游标declaresc_cursorCURSORforselectsnofromscRankFun(@sportno)--打开游标opensc_cursor--提取第一行fetchnextfromsc_cursorinto@snowhile@@FETCH_STATUS=0beginusesportsupdatescsetsrank=@rankwheresno=@snoset@rank=@rank+1fetchnextfromsc_cursorinto@snoendclosesc_cursordeallocatesc_cursorset@sportno=@sportno+1endGo5.8查询某个项目的全部成绩和排名(表值函数)输入:项目号输出:此项目的所有运动员的学号,姓名,成绩,名次,班级,学院表值函数实现下面的查询功能查询某个项目的全部成绩和排名usesportsifexists(select*fromsysobjectswherename='spFun'andtype='TF')dropfunctionspFungocreatefunctionspFun(@sportnoint)returns@sttable(学号int,姓名varchar(20),成绩varchar(20),名次int,班级varchar(20),学院varchar(20))asbegininsertinto@stselectstu.sno,stu.sname,sc.score,sc.srank,stu.sclassname,stu.sdeptfromsturightjoinscon(stu.sno=sc.sno)wheresc.sportno=@sportnoorderbysrankreturnendgo测试程序select*fromspFun(1)5.9查询某个班的运动员成绩(表值函数)输入:班级名输出:此班级的所有运动员的学号,姓名,项目,成绩,名次--查询某个班的运动员成绩usesportsifexists(select*fromsysobjectswherename='classFun'andtype='TF')dropfunctionclassFungocreatefunctionclassFun(@sclassnamevarchar(20))returns@sttable(学号int,姓名varchar(20),项目varchar(20),成绩varchar(20),名次int)asbegininsertinto@stselectstu.sno,stu.sname,a.sportname,a.score,a.srankfromsturightjoin(selectsno,sportname,score,srankfromscleftjoinspon(sc.sportno=sp.sportno))aon(stu.sno=a.sno)wherestu.sclassname=@sclassnamereturnendgo测试程序select*fromclassFun('数学二班')5.10查询某个学生的所有成绩(表值函数)输入:类型和学号或运动号或姓名输出:此运动员的学号,姓名,项目,成绩,名次--查询某个学生的所有成绩usesportsifexists(select*fromsysobjectswherename='stuFun'andtype='TF')dropfunctionstuFungocreatefunctionstuFun(@kindint,@namevarchar(20))returns@sttable(学号int,姓名varchar(20),项目varchar(20),成绩varchar(20),名次int)asbegindeclare@snointif@kind=1set@sno=cast(@nameasint)elseif@kind=2select@sno=snofromstuwheresname=@nameelseselect@sno=snofromstuwherespno=@nameinsertinto@stselecta.sno,stu.sname,a.sportname,a.score,a.srankfrom(selectsno,score,srank,sportnamefromscleftjoinspon(sc.sportno=sp.sportno))arightjoinstuon(a.sno=stu.sno)wherestu.sno=@snoreturnendgo测试程序select*fromstuFun(1,'10103')5.11查询某个学生的某个项目成绩(表值函数)输入:学号,运动号输出:此运动员的学号,姓名,项目,成绩,名次--查询某个学生的某个项目成绩usesportsifexists(select*fromsysobjectswherename='stuspFun'andtype='TF')dropfunctionstuspFungocreatefunctionstuspFun(@snoint,@sportnoint)returns@sttable(学号int,姓名varchar(20),项目varchar(20),成绩varchar(20),名次int)asbegininsertinto@stselecta.sno,stu.sname,a.sportname,a.score,a.srankfrom(selectsno,score,srank,sportname,sc.sportnofromscleftjoinspon(sc.sportno=sp.sportno))arightjoinstuon(a.sno=stu.sno)wherestu.sno=@snoanda.sportno=@sportnoreturnendgo测试程序select*fromstuspFun(10103,1)5.12查询某个学院的运动员成绩(表值函数)输入:学院名输出:此学院所有运动员的学号,姓名,项目,成绩,名次,班级--查询某个学院的运动员成绩usesportsifexists(select*fromsysobjectswherename='sdeptFun'andtype='TF')dropfunctionsdeptFungocreatefunctionsdeptFun(@sdeptnamevarchar(20))returns@sttable(学号int,姓名varchar(20),项目varchar(20),成绩varchar(20),名次int,班级varchar(20))asbegininsertinto@stselecta.sno,stu.sname,a.sportname,a.score,a.srank,stu.sclassnamefromsturightjoin(selectsno,sportname,score,srankfromscleftjoinspon(sc.sportno=sp.sportno))aon(stu.sno=a.sno)wherestu.sdept=@sdeptnameorderbya.snoreturnendgo测试程序select*fromsdeptFun('计算机')5.13查询全校运动员成绩(表值函数)输入:无输入输出:学校全体运动员的学号,姓名,项目,成绩,名次,班级,学院--查询全校运动员成绩usesportsifexists(select*fromsysobjectswherename='schFun'andtype='TF')dropfunctionschFungocreatefunctionschFun()returns@sttable(学号int,姓名varchar(20),项目varchar(20),成绩varchar(20),名次int,班级varchar(20),学院varchar(20))asbegininsertinto@stselecta.sno,stu.sname,a.sportname,a.score,a.srank,stu.sclassname,stu.sdeptfromsturightjoin(selectsno,sportname,score,srankfromscleftjoinspon(sc.sportno=sp.sportno))aon(stu.sno=a.sno)orderbya.snoreturnendgo测试程序select*fromschFun()5.14通过学号和运动号查询成绩和名次(存储过程)输入:学号,运动号输出:姓名,成绩,名次usesportsgoifexists(select*fromsysobjectswherename='stuScore'andtype='P')dropprocedurestuScoregocreateprocedurestuScore(@snoint,@sportnoint,@snamevarchar(10)output,@stuScorevarchar(10)output,@stuRankintoutput)asselect@sname=snamefromstuwheresno=@snoselect@stuScore=score,@stuRank=srankfromscwheresno=@snoandsportno=@sportnogoGo5.15创建班级成绩和名次视图usesportsifexists(select*fromsysobjectswherename='view_clscore'andtype='v')dropviewview_clscoregocreateviewview_clscoreasselectsdeptnameas'学院',sclassnameas'班级',sclscoreas'总分',sclrankindeptas'学院名次',sclrankinschas'学校名次'fromclscoreGo测试程序select*fromview_clscore5.16创建索引usesportsifexists(select*fromsysindexeswherename='IDX_sc')dropindexsc.IDX_scgocreateindexIDX_sconsc(sportno,srank)Go6界面设计主要过程为了使用户的使用更加方便,同时也为了增加对数据库的保护,尽量减少用户可以直接更改数据库的机会,所以加入了运动会成绩管理系统的界面部分。6.1界面总体设计界面所面向用户:由于本系统所面对的不同用户有成绩管理员和学生,所以应该开发出面向着两种用户的使用界面。针对不同的用户,他们所需要的操作也是不同的,所以下面需要根据不同的用户身份登录,设计不同的界面,实现不同的功能。成绩管理员具有最高的管理权限,是成绩信息的管理者。管理员具有所有运动项目的管理,所有学生运动员的管理,同时也应该具有对所有运动成绩记录的管理。学生运动员的主要功能就是查询功能,可以查询某个运动员,班,项目,学院或者整个学校的比赛成绩信息和名次情况。6.2登录界面设计登录界面应该是面向上述两种不同用户开发的,所以应该有区分他们的身份的按钮,以及用户的登录信息输入框,依此来核对用户的登录信息是否正确,判断是否让用户进入系统。核对登录信息的主要代码如下:privatevoidbutton1_Click(objectsender,EventArgse){stringname=textBox1.Text;stringposs=textBox2.Text;if(name=="luozaicc"&&poss=="123456"&&this.radioButton1.Checked==true){FirstFormfirstForm=newFirstForm(1);firstForm.ShowDialog();}elseif(this.radioButton2.Checked==true){FirstFormfirstForm=newFirstForm(0);firstForm.ShowDialog();}elseMessageBox.Show("登录信息不正确,请重新输入!");}界面如下:6.3成绩管理员界面设计成绩管理员主界面包含三个comboBox分别对应信息录入,成绩查询与修改和基本信息查询。管理员选择每一个comboBox中不同的选项,管理不同的表。(1)下面主要介绍一下成绩查询及修改的相关设计和代码。privatevoidcomboBox2_SelectedIndexChanged(objectsender,EventArgse){stringstr=boBox2.Text;if(str.Equals("个人成绩查询"))//1{StuFormstuform=newStuForm(root);stuform.ShowDialog();}if(str.Equals("项目成绩查询"))//2{SpFormspform=newSpForm(root);spform.ShowDialog();}if(str.Equals("班级成绩查询"))//3{ClaFormclaForm=newClaForm(root);claForm.ShowDialog();}if(str.Equals("学院成绩查询"))//4{DeptFormdeptForm=newDeptForm(root);deptForm.ShowDialog();}if(str.Equals("全校成绩查询"))//5{SchFormschForm=newSchForm(root);schForm.ShowDialog();}if(str.Equals("全校班级排名"))//6{ClaRankFormclaRankForm=newClaRankForm(root);claRankForm.ShowDialog();}}1、假设此时管理员选择了项目成绩查询,则会出现项目表的查询界面如下:(6-1) (6-2)管理员可以输入查询的项目号,查询每一个项目的信息,并且可以通过直接修改成绩实现名次的更新,比较图(6-1)和(6-2)中选定的行,可以看到成绩变动后名次的自动更新。相关代码如下:privatevoidbutton2_Click(objectsender,EventArgse){DataTabledt0=dt;if(dt==null)return;stringsno,score;for(inti=0;i<dataGridView1.Rows.Count-1;i++){sno=dataGridView1.Rows[i].Cells[0].Value.ToString();score=dataGridView1.Rows[i].Cells[2].Value.ToString();updataSQL(sno,score);}dataGridView1.DataSource=sel();}publicboolupdataSQL(stringsno,stringscore){SqlConnectionconn=newSqlConnection("DataSource=(local);InitialCatalog=sports;IntegratedSecurity=True");conn.Open();stringsql="updatescsetscore=@scorewheresno=cast(@snoasint)andsportno=@sportno";SqlCommandcmd=newSqlCommand(sql,conn);SqlParameterparn1=newSqlParameter("@sno",sno);cmd.Parameters.Add(parn1);SqlParameterparn2=newSqlParameter("@sportno",sportno);cmd.Parameters.Add(parn2);SqlParameterparn3=newSqlParameter("@score",score);cmd.Parameters.Add(parn3);intresult=cmd.ExecuteNonQuery();conn.Close();cmd.Dispose();returnresult!=0;}管理员在此界面中修改成绩,并且可以删除某一条记录。具体的方法:选定某一行记录,单击删除按钮,便完成了删除功能,数据库中也相应的删除了此条记录。截图和代码如下:比较上面两张截图可以看出删除了第一幅图中选定的行。主要代码为:privatevoidbutton3_Click(objectsender,EventArgse){if(dt==null)return;intindex=dataGridView1.CurrentRow.Index;stringsno;if(index>=0&&index<=dataGridView1.Rows.Count){sno=dataGridView1.Rows[index].Cells[0].Value.ToString();if(Delete(sno))MessageBox.Show("删?除y成é功|!?");}dataGridView1.DataSource=sel();}publicboolDelete(stringsno){Sql

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论