版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
信息工程學(xué)院
課程設(shè)計(jì)報(bào)告
設(shè)計(jì)名稱:_________數(shù)據(jù)庫(kù)課程設(shè)計(jì)_______________
姓名:_____________________________________
學(xué)號(hào):______________________________________
專(zhuān)業(yè)班級(jí):______________________________________
系(院):______________________________________
設(shè)計(jì)時(shí)間:______________________________________
設(shè)計(jì)地點(diǎn):______________________________________
指導(dǎo)老師:______________________________________
一.課程設(shè)計(jì)目的
數(shù)據(jù)庫(kù)課程設(shè)計(jì)是為數(shù)據(jù)庫(kù)原理及應(yīng)用課程而獨(dú)立開(kāi)設(shè)的實(shí)踐性課程,對(duì)于鞏固數(shù)據(jù)庫(kù)知識(shí),加強(qiáng)學(xué)生
的實(shí)際動(dòng)手能力和提高學(xué)生綜合素質(zhì)十分必要。通過(guò)本實(shí)驗(yàn)達(dá)到以下目的:
(1)培養(yǎng)學(xué)生具有C/S和B/S/S模式的數(shù)據(jù)庫(kù)應(yīng)用軟件系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)能力。
(2)熟練掌握一種數(shù)據(jù)庫(kù)系統(tǒng)(如SQLSERVER)的使用。
(3)熟練掌握一種數(shù)據(jù)庫(kù)應(yīng)用軟件開(kāi)發(fā)工具(如POWERBUILDER、ASP、VB.NET)的使用。
(4)通過(guò)設(shè)計(jì)實(shí)際的數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用課題,進(jìn)一步熟悉數(shù)據(jù)庫(kù)管理系統(tǒng)的操作技術(shù),提高動(dòng)手能力,提
高分析問(wèn)題和解決問(wèn)題的能力。
二.課程設(shè)計(jì)任務(wù)與要求:
1\任務(wù):
學(xué)生選課系統(tǒng)
問(wèn)題描述:
1)學(xué)?,F(xiàn)有課程若干門(mén)。
2)課程表的信息有課程號(hào)、名字、學(xué)分、、學(xué)期、課時(shí)等。
3)學(xué)生表的信息有學(xué)生號(hào)、名字、性別、年齡、。
4)選課表的信息有選修課程號(hào)、學(xué)生的學(xué)號(hào)、課程學(xué)分。
5)用戶表信息有用戶名、用戶密碼、用戶權(quán)限。
2、設(shè)計(jì)要求:
1)實(shí)現(xiàn)學(xué)生表中學(xué)生信息的插入、修改、刪除。
2)實(shí)現(xiàn)課程表中課程信息的插入、修改、刪除。
3)實(shí)現(xiàn)選課表中得選修課程的選課信息查詢、進(jìn)行課程選擇。
4)管理員進(jìn)行登陸后才能訪問(wèn)此數(shù)據(jù)庫(kù)。
5)設(shè)計(jì)一完整的數(shù)據(jù)庫(kù).要求掌握數(shù)據(jù)庫(kù)的設(shè)計(jì)的每個(gè)步驟;掌握數(shù)據(jù)設(shè)計(jì)各階段的輸入、輸出、設(shè)
計(jì)環(huán)境、目標(biāo)和方法;熟練的使用SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)重要對(duì)象的建立、應(yīng)用和維護(hù)。
三.課程設(shè)計(jì)說(shuō)明書(shū)
1需求分析
(1)數(shù)據(jù)需求
學(xué)生選修信息系統(tǒng)需要完成功能主要有:
1、課程基本信息的輸入查詢、修改、刪除,包括課程號(hào)、課程名字、學(xué)期、課程學(xué)分等.
2、學(xué)生基本信息的的輸入查詢、修改、刪除,包括學(xué)號(hào)、學(xué)生姓名、學(xué)生性別、學(xué)生年齡、系別等。
3、學(xué)生選課的基本信息的選課信息查詢、學(xué)生進(jìn)行課程選擇。
4、管理員的基本信息的輸入、查詢、修改、包括用戶名、密碼。
(2)事務(wù)需求
①在課程信息部分,要求:
a.可以查詢課程信息。
b.可以對(duì)課程信息進(jìn)行插入、修改及刪除的操作。
②在學(xué)生信息部分,要求:
a.可以查詢學(xué)生信息:
b.可以對(duì)學(xué)生信息進(jìn)行維護(hù),包括插入、修改及刪除的操作。
③在學(xué)生選課信息管理部分,要求:。
a.可以學(xué)生選課信息。
b.可以對(duì)學(xué)生選課信息進(jìn)行查詢及學(xué)生選課操作。
④在用戶登錄信息管理部分,要求:
a.能夠使用用戶信息進(jìn)行登錄訪問(wèn)
b.可以對(duì)用戶個(gè)人信息進(jìn)行修改、刪除維護(hù)操作
⑶關(guān)系模式
(1)課程類(lèi)別(課程編號(hào),課程名、課程學(xué)分、學(xué)期、課程學(xué)時(shí))
(2)學(xué)生類(lèi)別(學(xué)生號(hào),學(xué)生姓名,學(xué)生性別,學(xué)生年齡,學(xué)生系別)
(3)學(xué)生選課類(lèi)別(課程號(hào),學(xué)生號(hào),學(xué)生成績(jī))
(4)用戶類(lèi)別(用戶名,用戶密碼,用戶權(quán)限)
(4)數(shù)據(jù)流程圖(DFD)
用戶
分
數(shù)
查
詢
查詢課程課程信息
用戶
課程信息
學(xué)生信息管理
學(xué)生信息
系統(tǒng)
用戶
分
數(shù)
信
息
用戶
用戶
用戶
圖1-1頂層數(shù)據(jù)流圖
圖1-2一層數(shù)據(jù)流圖
F
數(shù)據(jù)流
數(shù)據(jù)處理
注:
數(shù)據(jù)存儲(chǔ)
D1用戶表
D2課程表
D3成績(jī)表
D4學(xué)生表
F1登錄信息
F3,F4,F5各種選課、學(xué)生信息
F2用戶信息
F6各種信息
F5
圖1-3二層數(shù)據(jù)流圖
F4
圖1-4二層數(shù)據(jù)流圖
(5)數(shù)據(jù)字典
為了使各數(shù)據(jù)流,數(shù)據(jù)處理過(guò)程,存儲(chǔ)過(guò)程不能反映其中的數(shù)據(jù)成,數(shù)據(jù)項(xiàng)目,數(shù)據(jù)特性,所以用數(shù)據(jù)
字典來(lái)對(duì)數(shù)據(jù)流圖中的各成份進(jìn)行具體的定義,為系統(tǒng)的分析,設(shè)計(jì)及以后的實(shí)現(xiàn)提供供有關(guān)元素一致性定
義和詳細(xì)的描述
①數(shù)據(jù)流字典
數(shù)據(jù)流名稱:讀者登錄標(biāo)志符:F1
別名:無(wú)
來(lái)源:用戶
去向:查詢處理過(guò)程(P)
數(shù)據(jù)組成:用戶名+密碼+用戶權(quán)限
數(shù)據(jù)流名稱:學(xué)生信息查詢標(biāo)志符:F5.3
別名:無(wú)
來(lái)源:用戶
去向:查詢處理過(guò)程(P2.3)
數(shù)據(jù)組成:學(xué)號(hào)+姓名+性別+年齡+系別
數(shù)據(jù)流名稱:課程信息查詢標(biāo)志符:F5.1
別名:無(wú)
來(lái)源:用戶
去向:查詢處理過(guò)程(P2.1)
數(shù)據(jù)組成:課程號(hào)+課程名+學(xué)分+學(xué)時(shí)+課時(shí)
數(shù)據(jù)流名稱:成績(jī)信息查詢標(biāo)志符:F5.2
別名:無(wú)
來(lái)源:用戶
去向:查詢處理過(guò)程(P2.2)
數(shù)據(jù)組成:學(xué)號(hào)+課程號(hào)+分?jǐn)?shù)
數(shù)據(jù)流名稱:學(xué)生信息管理標(biāo)志符:F4.2
別名:無(wú)
來(lái)源:用戶
去向:查詢處理過(guò)程(P4.2)
數(shù)據(jù)組成:學(xué)號(hào)+姓名+性別+年齡+系別
數(shù)據(jù)流名稱:課程信息管理標(biāo)志符:F4.3
別名:無(wú)
來(lái)源:用戶
去向:查詢處理過(guò)程(P4.3)
數(shù)據(jù)組成:課程號(hào)+課程名+學(xué)分+學(xué)時(shí)+課時(shí)
數(shù)據(jù)流名稱:成績(jī)信息管理標(biāo)志符:F4.1
別名:無(wú)
來(lái)源:用戶
去向:查詢處理過(guò)程(P4.4)
數(shù)據(jù)組成:學(xué)號(hào)+課程號(hào)+分?jǐn)?shù)
②數(shù)據(jù)存儲(chǔ)字典:
數(shù)據(jù)存儲(chǔ)名稱:用戶數(shù)據(jù)庫(kù)標(biāo)志符:D1
描述:所有用戶的信息
流入數(shù)據(jù)流:F1
涉及處理:P4P5
數(shù)據(jù)組成:用戶名+密碼+用戶權(quán)限
數(shù)據(jù)存儲(chǔ)名稱:課程數(shù)據(jù)庫(kù)標(biāo)志符:D2
描述:所有課程信息的詳細(xì)資料
流入數(shù)據(jù)流:F3
涉及處理:P4P5
數(shù)據(jù)組成:課程號(hào)+課程名+學(xué)分+學(xué)時(shí)+課時(shí)
數(shù)據(jù)存儲(chǔ)名稱:成績(jī)數(shù)據(jù)庫(kù)標(biāo)志符:D3
描述:所有用戶的成績(jī)數(shù)據(jù)詳細(xì)資料
流入數(shù)據(jù)流:F3
涉及處理:P4P5
數(shù)據(jù)組成:學(xué)號(hào)+課程號(hào)+分?jǐn)?shù)
數(shù)據(jù)存儲(chǔ)名稱:學(xué)生數(shù)據(jù)庫(kù)標(biāo)志符:D4
描述:所有學(xué)生信息的詳細(xì)資料
流入數(shù)據(jù)流:F3
涉及處理:P4P5
數(shù)據(jù)組成:學(xué)號(hào)+姓名+性別+年齡+系別
③數(shù)據(jù)處理字典:
數(shù)據(jù)處理名稱:用戶登錄標(biāo)志符:P1
處理定義:登錄系統(tǒng)
激發(fā)條件:所輸入用戶民和密碼正確
輸入:F1
輸出:F4,F5,F6
數(shù)據(jù)處理名稱:查詢選擇標(biāo)志符:P2.1
處理定義:選擇查詢方式
激發(fā)條件:已選擇查詢方式
輸入:F5
輸出:F7
數(shù)據(jù)處理名稱:學(xué)生查詢選擇標(biāo)志符:P2.2
處理定義:選擇查詢方式
激發(fā)條件:己選擇查詢方式
輸入:F4
輸出:F7
數(shù)據(jù)處理名稱:成績(jī)查詢選擇標(biāo)志符:P2.3
處理定義:選擇查詢方式
激發(fā)條件:已選擇查詢方式
輸入:F4
輸出:F7
數(shù)據(jù)處理名稱:課程查詢選擇標(biāo)志符:P2.4
處理定義:選擇查詢方式
激發(fā)條件:已選擇查詢方式
輸入:F4
輸出:F7
數(shù)據(jù)處理名稱:管理選擇標(biāo)志符:P4.1
處理定義:選擇管理功能
激發(fā)條件:選擇
輸入:F4
輸出:F8
數(shù)據(jù)處理名稱:成績(jī)管理選擇標(biāo)志符:P4.2
處理定義:選擇管理功能
激發(fā)條件:選擇
輸入:F4
輸出:F8
數(shù)據(jù)處理名稱:學(xué)生管理選擇標(biāo)志符:P4.3
處理定義:選擇管理功能
激發(fā)條件:選擇
輸入:F4
輸出:F8
數(shù)據(jù)處理名稱:課程管理選擇標(biāo)志符:P4.4
處理定義:選擇管理功能
激發(fā)條件:選擇
輸入:F4
輸出:F8
2概要設(shè)計(jì)
(1)實(shí)體圖及E-R圖
所要實(shí)現(xiàn)的功能設(shè)計(jì),可能建立它們之間的關(guān)系,進(jìn)而實(shí)現(xiàn)邏輯結(jié)構(gòu)功能。
該選課系統(tǒng)可以劃分的實(shí)體有:用戶實(shí)體,學(xué)生實(shí)體,課程實(shí)體,選課記錄實(shí)體。
①用戶信息實(shí)體圖:
圖2T用戶實(shí)體及其屬性圖
②學(xué)生信息實(shí)體圖:
圖2-2學(xué)生實(shí)體及其屬性圖
③課程信息實(shí)體圖
圖2-3課程實(shí)體及其屬性圖
④選課記錄信息實(shí)體圖
圖2-4選課記錄實(shí)體及其屬性圖
選課信息用戶信息
圖2-5總的E-R圖
3邏輯設(shè)計(jì)
表3-1課程表
表中列名數(shù)據(jù)類(lèi)型可否為空說(shuō)明
CnoVarchar(lO)notnull(主鍵)課程號(hào)
CnameVarchar(20)notnull課程名
Ccredtintnull學(xué)分
Csemesterintnull學(xué)期
Cperiodintnull課時(shí)
表3-2學(xué)生表
表中列名數(shù)據(jù)類(lèi)型可否為空說(shuō)明
SnoVarchar(lO)notnull(主鍵)學(xué)生號(hào)
Snamevarchar(8)notnull姓名
Ssexvarchar(2)notnull性別
Sageintnotnull年齡
SdeptVarchar(20)null院系
表3-3成績(jī)表
表中列名數(shù)據(jù)類(lèi)型可否為空說(shuō)明
CnoVarchar(lO)Notnull(主鍵)課程號(hào)
SnoVarchar(lO)Notnull(主鍵)學(xué)生號(hào)
gradeintnull成績(jī)
表3-4用戶表
表中列名數(shù)據(jù)類(lèi)型可否為空說(shuō)明
userNameVarchar(16)Notnull(主鍵)用戶名
userPasswordVarchar(16)Notnull密碼
userPurviewVarchar(8)null用戶權(quán)限
4關(guān)系圖
圖—|
口演有列)
=Sno
Cno
Flgrade
>
4-1
5物理設(shè)計(jì)
數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段的任務(wù)是根據(jù)具體計(jì)算機(jī)系統(tǒng)(DBMS和硬件等)的特點(diǎn),為給定的數(shù)據(jù)庫(kù)模型
確定合理的存儲(chǔ)結(jié)構(gòu)和存取方法。所謂的“合理”主要有兩個(gè)含義:一個(gè)是要使設(shè)計(jì)出的物理數(shù)據(jù)庫(kù)占用較
少的存儲(chǔ)空間,另一個(gè)對(duì)數(shù)據(jù)庫(kù)的操作具有盡可能高的速度。主要體現(xiàn)在后者。
(1)建立索引:
①對(duì)課程表在Cno屬性列上建立聚集索引,在Cname,Ccredt.Csemester,Cperiod屬性列上建立非
聚集索引。
②對(duì)學(xué)生表在Sno屬性列上建立聚集索引,在Sname,Ssex,Sage,Sdept屬性列上建立非聚集索引
③對(duì)成績(jī)表在Cno,Sno屬性列上建立聚集索引,在grade屬性列上建立非聚集索引
④對(duì)用戶表在userName屬性列上建立聚集索引,在userPassword,userPurview屬性列上建立非聚集
索引
(2)存儲(chǔ)結(jié)構(gòu)
確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)主要指確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu),包括確定關(guān)系、索引、日志、備份
等的存儲(chǔ)安排及存儲(chǔ)結(jié)構(gòu),以及確定系統(tǒng)存儲(chǔ)參數(shù)的配置。
將日志文件和數(shù)據(jù)庫(kù)對(duì)象(表、索引等)分別放在不同的磁盤(pán)可以改進(jìn)系統(tǒng)的性能。所以系統(tǒng)將日志
文件和數(shù)據(jù)文件存放在不同磁盤(pán)上。
6.數(shù)據(jù)庫(kù)建立
(1)創(chuàng)建數(shù)據(jù)庫(kù)
createdatabase111
on
(name=llldata,fllename='E:\sql\nidata.mdf,
size=5MB,
maxsize=20MB,
filegrowth=2MB)
logon
(name=lll_log,filename-E:\sql\lll_log.ldf,
size=lMB,
maxsize=20MB,
filegrowth=20%)
(2)創(chuàng)建學(xué)生信息表
createtable學(xué)生表
(Snochar(10)primarykey,
Snamechar(10)unique,
Ssexchar(5),
Sageint,
Sdeptchar(8)
);
(3)創(chuàng)建課程信息表
createtable課程表
(Cnochar(10),
Primarykey(cno),
Cnamechar(10),
Ccredtchar(10)
Csemesterchar(10)
Cperiodchar(10)
);
(4)創(chuàng)建成績(jī)表
createtable成績(jī)表
(Snochar(10),
Cnochar(10),
gradesmallint,
Primarykey(sno,cno),
foreignkey(sno)referencesstudent(sno),
foreignkey(cno)referencescourse(cno)
);
(5)創(chuàng)建用戶表
createtable用戶表
(userNamechar(10)
userPasswordchar(20)
userPurviewchar(10)
)
7.數(shù)據(jù)初始化
(1)往學(xué)生信息表插入數(shù)據(jù)
insertinto^4^(Sno,Sname,Ssex,Sage,Sdept)values('11341
insertinto學(xué)生表values('l1342','劉晨':女',19,'cs');
insertinto學(xué)生表values,11343','王敏','女',18,'ma');
insertinto學(xué)生表丫21配$('11344','張立','男',20,y');
(2)往課程信息表插入數(shù)據(jù)
insertinto課程表(CnoCnameCcredtCsemesteCperiod)values('1001','數(shù)據(jù)庫(kù)','4','3','80');
insertinto課程表values('1002','數(shù)學(xué)','5','2',,75');
insertinto課程表丫4問(wèn)('1003;信息系統(tǒng)?4',2,’65');
insertinto課程表values('1004',操作系統(tǒng)?3','3',’90');
(3)往成績(jī)表插入數(shù)據(jù)
insertinto成績(jī)表(sno,cno,grade)values('l1341','1001',92);
insertinto成績(jī)表values('11342','1002',85);
insertinto成績(jī)表values,11343','1003',88);
insertinto成績(jī)表valuesC11344','1004',90);
(4)往用戶表插入數(shù)據(jù)
insertinto用戶表(usernameuserPassworduserPurview)values(‘姚春振’,'123',‘超級(jí)用戶')
insertinto用戶表values('李龍龍’,'123',‘管理員')
insertinto用戶表values('毋康康','123','一般用戶')
insertinto用戶表values('呂斌','123',‘管理員')
8.數(shù)據(jù)庫(kù)權(quán)限管理
該系統(tǒng)設(shè)置三種類(lèi)型的用戶
(1)管理員:李龍龍,呂斌
(2)超級(jí)用戶:姚春振
(3)一般用戶:毋康康
9、建立觸發(fā)器,存儲(chǔ)過(guò)程
----------------建立學(xué)生信息管理的存貯過(guò)程
createprocedurestudentmessage
as
begin
selectsno,snamefromtbl_學(xué)生表
end
go
execstudentmessage
go
--------建立課程信息的存貯過(guò)程
createprocedurecoursemessage
as
begin
selectsno,snamefromtbl_課程表
end
go
execcoursemessage
go
--------創(chuàng)建觸發(fā)器score_grade_tri
createtriggerscore_grade_tri
onscforinsert,update
as
declare@score_readint
select@score」6ad=gradefrominserted
if@score_read>=0and@score_read<=100
begin
print操作完成’
return
end
else
begin
print成績(jī)輸入不合法,請(qǐng)重新輸入!’
rollbacktransaction
end
--------創(chuàng)建觸發(fā)器triscsno
createtriggertriscsno
onscforupdate
as
ifupdate(sno)
begin
declare@sno_oIdchar(10),@countint
seIect@sno_old=snofromdeleted
seIect@count=count(*)fromstudentwheresno=@sno_old
if@count>0
rolIbacktransaction
End
10系統(tǒng)實(shí)現(xiàn)
(1)系統(tǒng)功能模塊圖:
系統(tǒng)功能模塊圖如圖10-1
圖10-1系統(tǒng)功能模塊圖
四個(gè)子系統(tǒng)的功能如下:
①登錄子系統(tǒng):
可以實(shí)現(xiàn)學(xué)生選課系統(tǒng)管理員。
②學(xué)生信息管理子系統(tǒng):
主要用于管理員對(duì)學(xué)生信息添加、修改、刪除操作,實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的更新。
③課程信息管理子系統(tǒng):
主要用于管理員對(duì)選修課程信息的添加、修改、刪除管理,實(shí)現(xiàn)課程信息數(shù)據(jù)的更新。
④成績(jī)表管理子系統(tǒng):
主要用于管理員對(duì)選課信息的查詢和學(xué)生進(jìn)行選課操作。
(2)前臺(tái)開(kāi)發(fā)平臺(tái)的選擇:VB.NET
(3)VB.NET與數(shù)據(jù)庫(kù)的連接
ADO.NET是VB.NET訪問(wèn)數(shù)據(jù)庫(kù)的主要方式。
①ADO.NET的數(shù)據(jù)訪問(wèn)方式
ADO.NET的數(shù)據(jù)存取API提供3種數(shù)據(jù)訪問(wèn)方式:
a)通過(guò)ODBC相連,訪問(wèn)支持早期ODBC協(xié)議的數(shù)據(jù)庫(kù)。
b)通過(guò)OLEDB相連,訪問(wèn)SQLServer2005,MicrosoftAccess,Oracle或者其他有提供OLEDB連
接能力的數(shù)據(jù)庫(kù)
c)使用SqlConnection直接SQLServer2005相連
②VB.NET訪問(wèn)數(shù)據(jù)庫(kù)的具體過(guò)程
a)創(chuàng)建數(shù)據(jù)庫(kù)連接
ADO.NET中使用SqlConnection類(lèi)對(duì)SQLServer2005以及更高版本進(jìn)行連接,這個(gè)類(lèi)的構(gòu)造函數(shù)接受
一個(gè)可選參數(shù),稱為連接字符串,該字符串用于定義正在連接的數(shù)據(jù)庫(kù)的類(lèi)型、位置以及其他信息,這些屬
性用分號(hào)分隔,通常該字符串包含如下信息:①DataSource特性:指定SQLServer數(shù)據(jù)庫(kù)所在計(jì)算機(jī)名
稱;②InitialCatalog特性:指定連接的SQLServer數(shù)據(jù)庫(kù)的名稱;③userName和userPassword特
性:指定用SQLSERVER登錄方式的有效帳戶名和密碼或設(shè)置為:integratedsecurity=SSPI設(shè)置為Windows登錄
方式。
b)填充數(shù)據(jù)
創(chuàng)建數(shù)據(jù)源連接以后,接下來(lái)創(chuàng)建數(shù)據(jù)適配器,適配器在創(chuàng)建過(guò)程中需要向其傳遞兩個(gè)要素:用于包
含結(jié)構(gòu)化查詢語(yǔ)句的數(shù)據(jù)描述和用于指明數(shù)據(jù)庫(kù)連接信息的連接描述,創(chuàng)建后可利用Fill方法,將所需的
數(shù)據(jù)填充在一個(gè)數(shù)據(jù)集(DataSet)中。
c)關(guān)閉數(shù)據(jù)庫(kù)的連接
由于DataSet采用是斷開(kāi)連接的方式,所以當(dāng)把數(shù)據(jù)填充到數(shù)據(jù)集后即可斷開(kāi)與數(shù)據(jù)庫(kù)的連接。
d)為控件指定數(shù)據(jù)源
數(shù)據(jù)填充到數(shù)據(jù)集后,要在窗體上顯示出來(lái),則必須把相應(yīng)的數(shù)據(jù)表綁定到數(shù)據(jù)控件上。
具體實(shí)現(xiàn)代碼如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Windows.Forms;
namespacehey
{
publicclassDataBase
(
publicSqlConnectiondataConnection=newSqlConnection();
publicSqlDataAdapterdataAdapter;
publicDataSetdataSet=newDataSet();
stringconnstr=//server=PC-20100908TULP;database=mysql;integratedsecurity=SSPI,z;
publicDataSetGetDataFormDB(stringsqlStr)
{
try
(
dataConnection.Connectionstring=connstr;
dataAdapter=newSqlDataAdapter(sqlStr,dataConnection);
dataSet.Clear();
dataAdapter.Fill(dataSet);
dataConnection.Close();
)
catch(Exceptionex)
(
MessageBox.Show(ex.Message);
dataConnection.Close();
)
if(dataSet.Tab1es[0].Rows.Count!=0)
(
returndataSet;
)
else
returnnull;
)
}
publicboolUpdateDB(stringsqlStr)
{
Sq1ConnectionsqlConn=newI(onnection(connstr);
try
(
SqlCommandcmdTable=newSqlCommand(sqlStr,sqlConn);
cmdTable.CommandType=ConiniandType.Text;
sqlConn.OpenO;
cmdTable.ExecuteNonQuery();
sqlConn.Close0;
returntrue;
)
catch(Exceptionex)
(
MessageBox.Show(ex.Message);
returnfalse;
)
)
)
(4)登錄系統(tǒng)模塊及代碼
a)學(xué)生成績(jī)管理系統(tǒng)登錄界面如圖10-2
圖10-2學(xué)生選課系統(tǒng)登錄界面圖
登陸代碼為:
try
DataBasedb=newDataBase();
DataSetds=newDataSet();
stringsqlStr="selectuserPassword,userPurviewfrom用戶表whereuserName='"+
txtuserName.Text.TrimO+
ds=db.GetDataFormDB(sqlStr);
stringstrl,str2,str3;
strl=ds.Tables[0].Rows[0].ItemArray[0].ToStringO.TrimO;
str3=ds.Tables[0].Rows[0].ItemArray[1].ToStringO.TrimO;
str2=txtPassWord.Text.TrimO;
if(strl==str2)
(
if(str3==comboBoxl.Text.ToStringO.TrimO)
{
Form2ob_Form2=newForm2();
shuzu.userlnfo[0]=txtuserName.Text.TrimO;
shuzu.userlnfo[l]=ds.Tables[0].Rows[0].ItemArray[1].ToStringO;
ob_Form2.Show();
this.Hide();
)
else
{
MessageBox.Show("用戶權(quán)限錯(cuò)誤,請(qǐng)重新輸入”);
comboBoxl.Text=
comboBoxl.Focus();
}
}
else
(
MessageBox.Show("用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入“);
txtuserName.Text=
txtPassWord.Text=
txtuserName.Focus();
)
)
catch
(
MessageBox.Show("用戶名或密碼錯(cuò)誤","錯(cuò)誤");
)
②學(xué)生選課系統(tǒng)主界面如圖10-3
略
圖10-3學(xué)生選課系統(tǒng)主界面
③學(xué)生信息管理界面如圖10-4
圖10-4學(xué)生信息管理界面
可以進(jìn)行學(xué)生信息的添加、修改、刪除操作。
代碼如下:
try
(
if(buttonl.Text.TrimO=="添加")
(
buttonl.Text="確定";
ObjOpen();
Clear0;
button2.Enabled=false;
button3.Enabled=false;
button4.Enabled=false;
)
else
(
buttonl.Text=〃添加〃;
if(txtID.Text.TrimO!=""&&txtName.Text.TrimO!=
{
stringsqlStr;
sqlStr=""insertinto學(xué)生表values('"+txtID.Text.Trim。+txtName.Text.Trim()
+〃','〃+comSex.Text.TrimO+txtAge.Text.TrimO+〃','"+txtSdept.Text.TrimO+"')";
DataBasedb=newDataBase();
boolb;
b=db.UpdataDB(sqlStr):
if(b==true)
(
if(MussageBox.Show(〃添力H成功!繼續(xù)添加嗎?“,〃添加學(xué)生〃,.BoxButtons.YesNo,
MessageBoxIcon.Question,MessagoBoxDofau11Bn11on.Button1)==DiaIogResu]t.Yes)
(
//Clear();
//ObjCloseO;
RefresDataO;
//buttonl.Text=
Form3_Load(null,null);
button2.Enabled=true;
button3.Enabled=true;
button4.Enabled=true;
)
else
(
ObjCloseO;
button2.Enabled=true;
button3.Enabled=true;
button4.Enabled=true;
dgrdvStudent.Enabled=true;
}
)
else
(
gotoexit;
)
)
else
{
MessageBox.Show(“學(xué)號(hào)和姓名不能為空");
txtID.Focus();
buttonl.Text="確定";
}
RefresDataO;
txtID.SelectAll();
}
修改:try
(
if(button2.Text.Trim()二二"修改")
(
button2.Text="確定";
buttonl.Enabled=false;
button3.Enabled=false;
button4.Enabled=false;
txtName.Enabled=true;
txtAge.Enabled=true;
txtSdept.Enabled=true;
comSex.Enabled=true;
txtName.Focus();
}
else
(
button2.Text="修改";
buttonl.Enabled=true;
button3;Enabled=true;
button4.Enabled=true;
ObjCloseO;
stringsqlStr;
sqlStr=update學(xué)生表setSname='"+txtName.Text.Trim()+,Ssex='"+comSex.Text.Trim()
+Sage='〃+txtAge.Text.TrimO+,Sdept='"+txtSdept.Text.TrimO+whereSno='"+txtID.Text.TrimO+
DataBasedb=newDataBase();
db.UpdataDB(sqlStr);
RefresDataO;
}
)
catch(Exceptionex)
(
MesscigeBox.Show(ex.Message);
)
刪除
try
(
if(button3.Text.TrimO=="刪除")
(
button3.Text="確定";
buttonl.Enabled=false;
button2.Enabled=false;
button4.Enabled=false;
}
else
(
button3.Text="刪除";
buttonl.Enabled=true;
button2.Enabled=true;
button4.Enabled=true;
ObjClose();
stringsqlStr;
sqlStr="deletefrom學(xué)生表whereSno='"+txtID.Text.Trim()+
DataBasedb=newDataBase();
db.UpdataDB(sqlStr);
RefresDataO;
Form3_Load(nu11,null);
}
)
catch(Exceptionex)
(
Mcss<i,i;eBox.Show(ex.Message);
)
④課程信息管理界面如圖10-5所示:
圖10-5課程信息管理界面
可以進(jìn)行被選擇課程信息的添加、修改、刪除操作。
代碼如下:
添加:try
(
if(buttonl.Text.TrimO=="添加")
(
buttonl.Text="確定
ObjOpen();
Clear0;
button2.Enabled=false;
button3.Enabled=false;
}
else
(
buttonl.Text=〃添加〃;
if(txtCno.Text.Trim()!=""&&ss.Text.TrimO!=
{
stringsqlStr;
sqlStr=/zinsertinto課程表values,"+txtCno.Text.TrimO+"+txtCname.Text+
"+txtCredit.Text.TrimO+"+comCsemester.Text.TrimO+"+txtCperiod.Text.TrimO+
DataBasedb=newDataBase();
boolb;
b=■db.UpdataDB(sqlStr);
if(b==true)
(
if(MessageBox.Show("添加成功!繼續(xù)添加嗎?","添加學(xué)生",MessageBoxButtons.YesNo,
Messcij;eB()xIcon.Question,MessageBoxDefaultButton.Buttonl)二二DialogResult.Yes)
(
Form4_Load(nu11,null);
button2.Enabled=true;
button3.Enabled=true;
RefresDataO;
}
else
(
ObjCloseO;
button2.Enabled=true;
button3.Enabled=true;
dgrdvCourse.Enabled=true;
}
)
else
(
gotoexit;
)
}
else
{
MesscigeBox.Show(“課程號(hào)和課程姓名不能為空〃);
txtCno.Focus();
buttonl.Text="確定";
)
RefresDataO;
txtCno.SelectAll();
刪除:
ry
(
if(button2.Text.TrimO=="刪除")
(
button2.Text="確定";
buttonl.Enabled=false;
button3.Enabled=false;
}
else
(
button2;Text="刪除";
buttonl.Enabled=true;
button3.Enabled=true;
ObjCloseO;
stringsqlStr;
sqlStr="deletefrom課程表whereCno=+txtCno.Text.TrimO+
DataBasedb=newDataBase();
db.UpdataDB(sqlStr);
RefresDataO;
Form4Load(null,null);
}
)
catch(Exceptionex)
(
MessageBox.Show(ex.Message);
)
修改:try
(
if(button3.Text.TrimO=="修改”)
(
button3.Text="確定";
buttonl.Enabled=false;
button2.Enabled=false;
txtCperiod.Enabled=true;
txtCredit.Enabled=true;
comCsemester.Enabled=true;
txtCredit.Focus();
)
else
button3.Text="修改";
buttonl.Enabled=true;
button2.Enabled=true;
ObjCloseO;
stringsqlStr;
sqlStr="update課程表setCcredit='"+txtCredit.Text.TrimO+,Csemester='"+
comCsemester.Text.Trim()+,Cperiod='"+txtCperiod.Text.Trim()+“'whereCno='"+txtCno.Text.Trim()+
DataBasedb=newDataBase();
db.UpdataDB(sqlStr);
RefresDataO;
)
)
catch(l:xceptionex)
(
McssageBox.Show(ex.Message);
)
⑤學(xué)生選課界面如圖10-6所示
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 堆假山合同范例
- 瀝青清包工合同范例
- 豬買(mǎi)賣(mài)合同范例
- 2025勞動(dòng)合同續(xù)簽期限
- 照顧獨(dú)居老人合同范例
- 工程營(yíng)銷(xiāo)合同范例
- 住宿 會(huì)議 用餐合同范例
- 工地木材合同范例
- 肯德基假期兼職合同范例
- 溝渠維修合同范例
- 消防立管永臨結(jié)合施工方案
- 人教版八年級(jí)物理下冊(cè) 實(shí)驗(yàn)題02 壓力壓強(qiáng)實(shí)驗(yàn)(含答案詳解)
- 抖音快手短視頻創(chuàng)業(yè)項(xiàng)目融資商業(yè)策劃書(shū)
- 滬教版英語(yǔ)八年級(jí)上冊(cè)知識(shí)點(diǎn)歸納匯總
- 裝飾裝修工程售后服務(wù)具體措施
- 軟件設(shè)計(jì)說(shuō)明書(shū)通用模板
- 酒店治安安全培訓(xùn)
- 糖皮質(zhì)激素類(lèi)藥物臨床應(yīng)用指導(dǎo)原則(2023年)
- 我的家鄉(xiāng)-東營(yíng)
- 世界的海陸分布、世界的地形復(fù)習(xí)提綱
- SMT電子物料損耗率標(biāo)準(zhǔn) 貼片物料損耗標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論