數(shù)據(jù)庫(kù)課程設(shè)計(jì)概要_第1頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)概要_第2頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)概要_第3頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)概要_第4頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)概要_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論