數(shù)據(jù)庫課程設(shè)計(jì)----圖書館管理系統(tǒng)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  數(shù)據(jù)庫課程設(shè)計(jì) 設(shè)計(jì)報(bào)告</p><p>  課程名稱:圖書館管理系統(tǒng)</p><p>  項(xiàng)目背景(寫出項(xiàng)目系統(tǒng)提出背景和必要)</p><p>  現(xiàn)在,科學(xué)技術(shù)的飛速發(fā)展把人類社會(huì)推向了一個(gè)嶄新的時(shí)代——信息時(shí)代。這已是無可爭(zhēng)議的事實(shí);信息對(duì)社會(huì)經(jīng)濟(jì)發(fā)展的巨大推動(dòng)作用,使其與物質(zhì)能源一起并列為現(xiàn)代社會(huì)的三大支柱,這已在全社會(huì)達(dá)到共識(shí)。

2、圖書管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要,所以圖書管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來

3、越重要的作用。 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生檔案信息進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。圖書管理系統(tǒng)的建立更進(jìn)一步的方便了師生對(duì)圖書的借閱。</p><p><b>  2 、系統(tǒng)功能</b><

4、/p><p>  本系統(tǒng)為我校圖書館管理系統(tǒng),其功能由圖書館圖書館圖書管理的日常事物確定,力求提高我校師生圖書借閱工作的效率,壓縮圖書節(jié)約信息流通的成本和時(shí)間,檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)。方便圖書統(tǒng)計(jì),借閱與報(bào)表的生成,為我校師生借閱圖書提供了便捷的服務(wù),系統(tǒng)主要完成如下功能:</p><p>  圖書基本信息管理登記,提供圖書的基本信息輸入</p>

5、<p><b>  登記學(xué)生借閱情況</b></p><p>  統(tǒng)計(jì)分析圖書借閱情況</p><p>  圖書系統(tǒng)管理流程圖:</p><p><b>  數(shù)據(jù)庫設(shè)計(jì):</b></p><p>  本系統(tǒng)主要設(shè)計(jì)對(duì)象(實(shí)體):讀者、書</p><p>  與讀者

6、相關(guān)的信息:編號(hào)、姓名、性別、類型、出生日期、有效證件、證件號(hào)碼、聯(lián)系方式、登記日期</p><p>  與書相關(guān)的信息:編號(hào)、書名、作者、出版社、價(jià)格</p><p>  圖書的借閱是系統(tǒng)的核心行為,涉及(借期、還期)就是借閱時(shí)間</p><p>  經(jīng)過分析,系統(tǒng)E—R模型圖如下:</p><p>  將E——R模型圖轉(zhuǎn)換,得到以下以下關(guān)

7、系模式</p><p>  讀者(讀者編號(hào)、姓名、性別、類型、出生日期、有效證件、證件號(hào)碼、聯(lián)系方式、登記日期)</p><p>  書(圖書編號(hào)、書名、作者、出版社、價(jià)格)</p><p>  借閱(讀者編號(hào)、歸還編號(hào)、罰款編號(hào)、借閱編號(hào)、圖書編號(hào))</p><p>  因?yàn)椋鹤x者(讀者號(hào)、姓名、性別、類型、出生日期、有效證件、證件號(hào)碼、聯(lián)

8、系方式、登記日期)</p><p>  函數(shù)依賴集={讀者號(hào) 姓名,讀者號(hào) 性別,讀者號(hào) 類型,讀者號(hào) 出生日期,讀者號(hào) 有效證件,讀者號(hào) 證件號(hào)碼,讀者號(hào) 聯(lián)系方式,讀者號(hào) 登記日期}</p><p>  關(guān)系中的碼=讀者號(hào),</p><p>  非主屬性=(姓名,性別)</p><p>  因?yàn)椋好恳粋€(gè)

9、屬性都是單一的屬性,所以達(dá)到第一范式,</p><p>  每一個(gè)非主屬性完全依賴于碼,所以達(dá)到第二范式,</p><p>  又因?yàn)椋篟中的每一個(gè)非主屬性不傳遞依賴于碼,所以進(jìn)一步達(dá)到第三范式</p><p><b>  實(shí)驗(yàn)步驟:</b></p><p>  1、啟動(dòng)查詢分析器,輸入SQL語句,并執(zhí)行:</p&

10、gt;<p>  Create database library</p><p>  On primary</p><p>  (name=圖書管理數(shù)據(jù)庫文件,</p><p>  filename='d:\db\library.mdf',</p><p><b>  size=5,</b>

11、</p><p>  maxsize=30,</p><p>  fileGrowth=2)</p><p><b>  log on</b></p><p>  (name=圖書管理日志文件,</p><p>  filename='d:\db\library.ldf',<

12、/p><p><b>  size=5,</b></p><p>  maxsize=30,</p><p>  fileGrowth=2)</p><p>  在查詢分析器輸入SQL語句,創(chuàng)建表,</p><p><b>  SQL語言如下:</b></p>&l

13、t;p>  創(chuàng)建“讀者信息”數(shù)據(jù)表</p><p><b>  SQL腳本如下:</b></p><p>  CREATE TABLE [dbo].[讀者信息] ( </p><p>  [編號(hào)] [varchar] (20) NOT NULL ,</p><p>  [姓名] [varchar]

14、(20) NULL ,</p><p>  [性別] [varchar] (8) NULL ,</p><p>  [類型] [varchar] (20) NOT NULL ,</p><p>  [出生日期] [smalldatetime] NULL ,</p><p>  [有效證件] [varchar] (60) NULL ,</

15、p><p>  [證件號(hào)碼] [varchar] (60) NULL ,</p><p>  [聯(lián)系方式] [varchar] (100) NULL ,</p><p>  [登記日期] [smalldatetime] NULL ,</p><p>  ) ON [PRIMARY]</p><p><b>  G

16、O</b></p><p>  創(chuàng)建“圖書信息”數(shù)據(jù)表</p><p><b>  SQL腳本如下:</b></p><p>  CREATE TABLE [dbo].[圖書信息] (</p><p>  [編號(hào)] [varchar] (50) NOT NULL ,</p><p> 

17、 [書名] [varchar] (200) NULL ,</p><p>  [作者] [varchar] (100) NULL ,</p><p>  [出版社] [varchar] (100) NULL ,</p><p>  [價(jià)格] [money] (8)NULL ,</p><p>  [現(xiàn)存量] [int] (4)NULL ,&l

18、t;/p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p><p>  創(chuàng)建“圖書借閱”數(shù)據(jù)表</p><p><b>  SQL腳本如下:</b></p><p>  CREATE TABLE [dbo].[圖書借閱] (</p&

19、gt;<p>  [借閱編號(hào)] [int] IDENTITY (1, 1) NOT NULL ,</p><p>  [圖書編號(hào)] [varchar] (50) NULL ,</p><p>  [讀者編號(hào)] [varchar] (40) NULL ,</p><p>  [借閱時(shí)間] [smalldatetime] (4) NULL ,</p&

20、gt;<p>  [應(yīng)還時(shí)間] [smalldatetime] (4) NULL ,</p><p>  [續(xù)借次數(shù)] [int] (4) NULL ,</p><p>  [狀態(tài)] [varchar] (10) NULL </p><p>  ) ON [PRIMARY]</p><p><b>  GO</b

21、></p><p>  創(chuàng)建“圖書罰款”數(shù)據(jù)表</p><p>  SQL腳本語言如下:</p><p>  CREATE TABLE [dbo].[圖書罰款] (</p><p>  [罰款編號(hào)] [int] IDENTITY (1, 1) NOT NULL ,</p><p>  [圖書編號(hào)] [varcha

22、r] (50) NULL ,</p><p>  [讀者編號(hào)] [varchar] (20) NULL ,</p><p>  [罰款日期] [smalldatetime] NULL ,</p><p>  [應(yīng)罰金額] [money] NULL ,</p><p>  [實(shí)收金額] [money] NULL ,</p><

23、;p>  [是否交款] [char] (10) NULL ,</p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p><p>  創(chuàng)建“圖書歸還”數(shù)據(jù)表</p><p>  SQL腳本語言如下:</p><p>  CREATE TABLE [db

24、o].[圖書歸還] (</p><p>  [歸還編號(hào)] [int] IDENTITY (1, 1) NOT NULL ,</p><p>  [圖書編號(hào)] [varchar] (50) NULL ,</p><p>  [讀者編號(hào)] [varchar] (40) NULL ,</p><p>  [退還押金] [money] NULL ,&

25、lt;/p><p>  [歸還時(shí)間] [smalldatetime] NULL ,</p><p>  [確定歸還] [text] (16) NULL </p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p><p>  創(chuàng)建主鍵和外鍵等表約束</p&

26、gt;<p>  在查詢分析器中通過如下代碼創(chuàng)建數(shù)據(jù)表的主鍵及外鍵等表約束</p><p>  SQL腳本語言如下:</p><p>  ALTER TABLE [dbo].[圖書信息] WITH NOCHECK ADD </p><p>  CONSTRAINT [PK_圖書信息] PRIMARY KEY CLUSTERED </p>

27、<p><b>  (</b></p><p><b>  [編號(hào)]</b></p><p>  ) ON [PRIMARY] </p><p><b>  GO</b></p><p>  ALTER TABLE [dbo].[圖書借閱] WITH NOCHEC

28、K ADD </p><p>  CONSTRAINT [PK_圖書借閱] PRIMARY KEY CLUSTERED </p><p><b>  (</b></p><p><b>  [借閱編號(hào)]</b></p><p>  ) ON [PRIMARY] </p><p

29、><b>  GO</b></p><p>  ALTER TABLE [dbo].[圖書歸還] WITH NOCHECK ADD </p><p>  CONSTRAINT [PK_圖書歸還] PRIMARY KEY CLUSTERED </p><p><b>  (</b></p><p&

30、gt;<b>  [歸還編號(hào)]</b></p><p>  ) ON [PRIMARY] </p><p><b>  GO</b></p><p>  ALTER TABLE [dbo].[圖書罰款] WITH NOCHECK ADD </p><p>  CONSTRAINT [PK_圖書罰款

31、] PRIMARY KEY CLUSTERED </p><p><b>  (</b></p><p><b>  [罰款編號(hào)]</b></p><p>  ) ON [PRIMARY] </p><p><b>  GO</b></p><p>

32、  ALTER TABLE [dbo].[讀者信息] WITH NOCHECK ADD </p><p>  CONSTRAINT [PK_讀者信息] PRIMARY KEY CLUSTERED </p><p><b>  (</b></p><p><b>  [編號(hào)]</b></p><p>

33、;  ) ON [PRIMARY] </p><p><b>  GO</b></p><p>  ALTER TABLE [dbo].[圖書借閱] ADD </p><p>  CONSTRAINT [圖書借閱_圖書編號(hào)_fk] FOREIGN KEY </p><p><b>  (</b>&

34、lt;/p><p><b>  [圖書編號(hào)]</b></p><p>  ) REFERENCES [dbo].[圖書信息] (</p><p><b>  [編號(hào)]</b></p><p><b>  )</b></p><p><b>  GO

35、</b></p><p>  ALTER TABLE [dbo].[圖書歸還] ADD </p><p>  CONSTRAINT [圖書歸還_圖書編號(hào)_fk] FOREIGN KEY </p><p><b>  (</b></p><p><b>  [圖書編號(hào)]</b></p

36、><p>  ) REFERENCES [dbo].[圖書信息] (</p><p><b>  [編號(hào)]</b></p><p><b>  )</b></p><p><b>  GO</b></p><p>  ALTER TABLE [dbo].[圖

37、書罰款] ADD </p><p>  CONSTRAINT [FK_圖書罰款_讀者信息] FOREIGN KEY </p><p><b>  (</b></p><p><b>  [讀者編號(hào)]</b></p><p>  ) REFERENCES [dbo].[讀者信息] (</p>

38、;<p><b>  [編號(hào)]</b></p><p><b>  ),</b></p><p>  CONSTRAINT [FK_圖書罰款_圖書信息] FOREIGN KEY </p><p><b>  (</b></p><p><b>  [圖書

39、編號(hào)]</b></p><p>  ) REFERENCES [dbo].[圖書信息] (</p><p><b>  [編號(hào)]</b></p><p><b>  )</b></p><p><b>  GO</b></p><p><

40、;b>  得出關(guān)系圖如下</b></p><p><b>  :</b></p><p>  輸入圖書信息表的數(shù)據(jù):</p><p>  輸入讀者信息表的數(shù)據(jù):</p><p>  輸入圖書借閱表的數(shù)據(jù):</p><p>  輸入圖書歸還表的數(shù)據(jù):</p><

41、p>  輸入圖書罰款表的數(shù)據(jù):</p><p><b>  創(chuàng)建存儲(chǔ)過程</b></p><p>  系統(tǒng)使用了“sf_圖書借閱”和“sf_圖書歸還”兩個(gè)存儲(chǔ)過程,實(shí)現(xiàn)的功能分別為借閱圖書出庫和歸還圖書入庫,產(chǎn)生罰款信息等功能。</p><p>  SQL腳本語言如下:</p><p>  create proc

42、sf_圖書借閱</p><p><b>  as</b></p><p>  begin tran …………………………..注釋:借圖書出庫,減少了圖書庫里的圖書存量</p><p>  update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) - 1</p><p>  from 圖書信息 as a

43、, 圖書借閱 as b</p><p>  where a.編號(hào)=b.圖書編號(hào) and b.狀態(tài)='新借'</p><p>  ……………………………………………注釋:設(shè)置借閱狀態(tài)</p><p>  update 圖書借閱 set 續(xù)借次數(shù)=0,狀態(tài)='未還'</p><p>  where 狀態(tài)='

44、新借'</p><p><b>  commit</b></p><p><b>  GO</b></p><p>  SET QUOTED_IDENTIFIER OFF </p><p><b>  GO</b></p><p>  SET A

45、NSI_NULLS ON </p><p><b>  GO</b></p><p>  SET QUOTED_IDENTIFIER ON </p><p><b>  GO</b></p><p>  SET ANSI_NULLS ON </p><p><b>

46、  GO</b></p><p>  create proc sf_圖書歸還 @借閱編號(hào) int, @罰款金額 money</p><p><b>  as</b></p><p>  begin tran……………………………………..注釋:還書入庫,增加存儲(chǔ)量</p><p>  update 圖書信息

47、set 現(xiàn)存量 = isnull(現(xiàn)存量,0) + 1</p><p>  from 圖書信息 as a, 圖書借閱 as b</p><p>  where a.編號(hào)=b.圖書編號(hào) and b.借閱編號(hào)=@借閱編號(hào)</p><p>  .......................................注釋:如果罰款不是0,在圖書罰款中產(chǎn)生記錄</

48、p><p>  if @罰款金額<> 0</p><p>  insert into 圖書罰款(圖書編號(hào),讀者編號(hào),罰款日期,應(yīng)罰金額,是否交款)</p><p>  select 圖書編號(hào),讀者編號(hào),getdate(), @罰款金額, 0</p><p>  from 圖書借閱 where 借閱編號(hào)=@借閱編號(hào)</p>

49、<p>  …………………….注釋:插入圖書歸還表</p><p>  insert into 圖書歸還(圖書編號(hào),讀者編號(hào),歸還時(shí)間)</p><p>  select 圖書編號(hào),讀者編號(hào),getdate()</p><p>  from 圖書借閱 where 借閱編號(hào)=@借閱編號(hào)</p><p>  …………………………………

50、….注釋:設(shè)置借閱狀態(tài)</p><p>  update 圖書借閱 set 狀態(tài)='已還' where 借閱編號(hào)=@借閱編號(hào)</p><p><b>  commit</b></p><p><b>  GO</b></p><p>  SET QUOTED_IDENTIFIER O

51、FF </p><p><b>  GO</b></p><p>  SET ANSI_NULLS ON </p><p><b>  GO</b></p><p><b>  SQL查詢語句:</b></p><p>  查詢編號(hào)為“000001”的圖

52、書的信息:</p><p>  輸入SQL語句:select *</p><p><b>  From 圖書信息</b></p><p>  Where 編號(hào)=’000001’</p><p><b>  查詢結(jié)果為:</b></p><p>  查詢清華大學(xué)出版社圖書的信息

53、,按圖書編號(hào)升序排序:</p><p>  輸入SQL語句:select *</p><p><b>  From 圖書信息</b></p><p>  Where 出版社=’清華大學(xué)出版社’</p><p>  Order by編號(hào)</p><p><b>  查詢結(jié)果為:</b

54、></p><p>  查詢所有姓張的讀者:</p><p><b>  輸入SQL語句為:</b></p><p><b>  select *</b></p><p>  From 讀者信息</p><p>  Where (姓名like ’張%’)</p&

55、gt;<p><b>  查詢結(jié)果為:</b></p><p>  還有各種查詢語句,在這里就不一一舉例了。</p><p><b>  完成結(jié)果:</b></p><p><b>  登陸界面</b></p><p><b>  讀者信息管理模塊:&l

56、t;/b></p><p><b>  圖書信息管理模塊:</b></p><p><b>  、</b></p><p>  圖書借閱信息管理模塊:</p><p><b>  、</b></p><p>  圖書歸還信息管理模塊</p&g

57、t;<p>  圖書罰款信息管理模塊</p><p><b>  創(chuàng)建工程:</b></p><p>  啟動(dòng)VB6.0,在主菜單中選擇[文件]/[新建工程]命令,在彈出的[新建工程]對(duì)話框中選擇[標(biāo)準(zhǔn)EXE]命令,然后單擊[確定]按鈕。</p><p><b>  54768132</b></p>

58、;<p>  創(chuàng)建一個(gè)主窗體,命名為frmMain.frm,</p><p>  (1)用菜單編輯器為其添加一個(gè)主菜單,布局為</p><p>  讀者管理(W) 圖書管理(X) 系統(tǒng)管理(Z)</p><p>  讀者信息CTRL+A 圖書信息CTRL+B

59、 管理員F1</p><p>  圖書借閱CTRL+F 關(guān)于F2</p><p>  圖書歸還CTRL+G 退出CTRL+Q</p><p>  圖書罰款CTRL+H</p><p> ?。ú藛尉庉嬈髦械脑O(shè)置)</p><p>  (2)窗體屬性設(shè)置如下表:

60、</p><p>  對(duì)該窗體編寫以下代碼,實(shí)現(xiàn)界面的功能:</p><p>  Private Sub Command1_Click() '輸入密碼以后菜單按鈕變?yōu)榭捎?lt;/p><p>  If Text1.Text = "ljj" And Text2.Text = "123" Then</p>&

61、lt;p>  dzxx.Enabled = True</p><p>  tsxx.Enabled = True</p><p>  tsjy.Enabled = True</p><p>  tsgh.Enabled = True</p><p>  tsfk.Enabled = True</p><p>&l

62、t;b>  End If</b></p><p>  Command1.Visible = False</p><p>  Command2.Visible = False</p><p>  Text1.Visible = False</p><p>  Text2.Visible = False</p>&

63、lt;p>  Label2.Visible = False</p><p>  Label3.Visible = False</p><p>  Label4.Visible = False</p><p><b>  End Sub</b></p><p>  Private Sub Command2_Click

64、()</p><p><b>  End</b></p><p><b>  End Sub</b></p><p>  Private Sub dzxx_Click() ‘打開讀者信息窗口</p><p>  dzxxgl.Show</p><p><b>  

65、End Sub</b></p><p>  Private Sub gly_Click()</p><p>  MsgBox "請(qǐng)用初始的用戶和密碼登陸系統(tǒng)!"</p><p><b>  End Sub</b></p><p>  Private Sub tc_Click()</p

66、><p><b>  End</b></p><p><b>  End Sub</b></p><p>  Private Sub Timer1_Timer()</p><p>  Label1.ForeColor = vbRed</p><p>  Label1.Captio

67、n = Time</p><p>  Label2.ForeColor = vbBlue</p><p>  Label3.ForeColor = vbBlue</p><p>  Label4.ForeColor = vbBlue</p><p>  Label5.ForeColor = vbPurple</p><p&

68、gt;<b>  End Sub</b></p><p>  Private Sub tsfk_Click()</p><p>  tsfkgl.Show</p><p><b>  End Sub</b></p><p>  Private Sub tsgh_Click()</p>

69、<p>  tsghgl.Show</p><p><b>  End Sub</b></p><p>  Private Sub tsjy_Click()</p><p>  tsjygl.Show</p><p><b>  End Sub</b></p><p&g

70、t;  Private Sub tsxx_Click()</p><p>  tsxxgl.Show</p><p><b>  End Sub</b></p><p><b>  創(chuàng)建數(shù)據(jù)訪問功能:</b></p><p>  該功能用于實(shí)現(xiàn)VB與SQL數(shù)據(jù)庫之間的通信。</p>&

71、lt;p>  打開控制面版------管理工具------數(shù)據(jù)源 (ODBC) 如圖 </p><p>  打開數(shù)據(jù)源 (ODBC) ,點(diǎn)“添加”;如圖</p><p>  如圖 ,選擇“SQL SERVER” 點(diǎn)“完成”。</p><p>  如圖,其中服務(wù)器用“.”,表示當(dāng)前服務(wù)器。然后“下一步”。</p><p>  再“下一

72、步”,如圖,更改默認(rèn)數(shù)據(jù)庫為剛才添加的“l(fā)ibrarybook”,然后“下一步”。</p><p>  點(diǎn)“完成”,如圖?!皽y(cè)試數(shù)據(jù)源”</p><p>  到這里數(shù)據(jù)連接的接口已經(jīng)打開。</p><p>  二、實(shí)現(xiàn)VB和數(shù)據(jù)庫之間的通信</p><p>  1、打開VB,添加“VB 數(shù)據(jù)庫窗體向?qū)А保鐖D“下一步”。</p>

73、<p>  選Remode(ODBC) ,”下一步” 如圖,</p><p>  在DNS中下拉選擇剛才創(chuàng)建的librarybook 數(shù)據(jù)源,“下一步“</p><p>  4、如圖,窗體布局選“網(wǎng)格(數(shù)據(jù)表)”,綁定類型選“ADO 數(shù)據(jù)控件”,“下一步“,</p><p>  5、如圖,記錄源下拉中選“讀者信息“,把所有”可用字段“添加到”選定字段“

74、下一步”</p><p>  6、如圖全部清除“可用控件”,“完成”。</p><p>  7、在VB菜單中“工程-----部件”,彈出窗口中下拉選擇Microsoft windows common controlrs 6.0,</p><p>  Microsoft ADO Data Control 6.0 (OLEDB),和Microsoft DataGrid

75、Control 6.0 (OLEDB)等3個(gè)組鍵,如圖</p><p>  確定之后VB工具欄中多出了幾個(gè)控件,如圖。</p><p>  到這里VB已經(jīng)連接到了SQL數(shù)據(jù)庫的數(shù)據(jù)源。</p><p>  實(shí)現(xiàn)讀者檔案管理功能</p><p>  ***注***(在此只具體介紹一個(gè)窗體,其他窗體的設(shè)置基本相同,詳細(xì)請(qǐng)看源代碼)</p&g

76、t;<p>  新建一個(gè)窗體,名字為dzxxgl </p><p>  各主要控件的屬性設(shè)置為:</p><p>  其它控件的具體擺設(shè)和屬性設(shè)置見圖和源代碼。</p><p>  **附Adodc1 控件的具體設(shè)置:</p><p>  右件單擊ADODC1控件,選ADODC屬性,如圖,“點(diǎn)連接字符串”,“生成”</p

77、><p>  如圖,“使用數(shù)據(jù)源名稱”下拉選“l(fā)ibrarybook”,測(cè)試連接。</p><p>  點(diǎn)“確定”,回到屬性頁,選擇數(shù)據(jù)源,出現(xiàn)如圖,設(shè)置如圖所示:命令文本“select * from 讀者信息 ”</p><p>  確定。把DataGrid 控件的 datasource 屬性設(shè)置為 Adodc1</p><p>  運(yùn)行后控

78、件DataGrid 就會(huì)顯示出數(shù)據(jù)庫中“讀者信息”的數(shù)據(jù)記錄了,如圖</p><p>  到此,VB已成功的讀取了SQL數(shù)據(jù)庫中的數(shù)據(jù)!</p><p>  (3)為窗體dzxxgl添加如下代碼:</p><p><b>  代碼:</b></p><p>  '調(diào)用函數(shù)FindFirst和FindNext從第一

79、條開始向下搜索,并把搜索到符合條件的數(shù)據(jù)寫到列表框中</p><p>  Private Sub Command1_Click()</p><p>  criteria = Combo1 & " like" & " '%" & Text1.Text & "%'"</p>

80、<p>  ret = FindFirst(Adodc1.Recordset, criteria)</p><p><b>  While ret</b></p><p>  List1.AddItem Adodc1.Recordset("編號(hào)") & "," & Adodc1.Recordset(&

81、quot;姓名") & " ," & Adodc1.Recordset("性別") & "  ," & Adodc1.Recordset("類型") & "  ," & Adodc1.Recordset("出生日期") & " 

82、," & Adodc1.Recordset("有效證件") & "  ," & Adodc1.Recordset("證件號(hào)碼") & " ," & Adodc1.Recordset("聯(lián)系方式") & "  ," & Adodc1.Recordset

83、("登記日期")</p><p>  ret = FindNext(Adodc1.Recordset, criteria)</p><p><b>  Wend</b></p><p><b>  End Sub</b></p><p>  '窗體激活后組合框1裝入所有字

84、段</p><p>  Private Sub Form_Activate()</p><p>  Combo1.Clear</p><p>  For i = 0 To Adodc1.Recordset.Fields.Count - 1</p><p>  Combo1.AddItem Adodc1.Recordset.Fields(i).

85、Name</p><p>  Combo1.ListIndex = 0</p><p><b>  Next</b></p><p>  Combo2.AddItem "男"</p><p>  Combo2.AddItem "女"</p><p>  Li

86、st1.AddItem " 編號(hào)  姓名  性別   類型  出生日期  有效證件  證件號(hào)碼  聯(lián)系方式  登記日期"</p><p><b>  End Sub</b></p><p>  Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)</p>

87、<p>  If StrComp(Button.Key, "btnFirst") = 0 Then</p><p>  Adodc1.Recordset.MoveFirst '首記錄</p><p>  ElseIf StrComp(Button.Key, "btnBefore") = 0 Then</p>&l

88、t;p>  Adodc1.Recordset.MovePrevious '上一條記錄</p><p>  If Adodc1.Recordset.BOF = True Then '當(dāng)超過文件開頭時(shí),光標(biāo)自動(dòng)移動(dòng)到第一條</p><p><b>  Beep</b></p><p>  MsgBox ("當(dāng)前記錄

89、已是第一條!")</p><p>  Adodc1.Recordset.MoveFirst</p><p><b>  End If</b></p><p>  ElseIf StrComp(Button.Key, "btnNext") = 0 Then</p><p>  Adodc1.R

90、ecordset.MoveNext '下一條記錄</p><p>  If Adodc1.Recordset.EOF = True Then '當(dāng)超過文件結(jié)尾時(shí),光標(biāo)自動(dòng)移動(dòng)到最后一條</p><p><b>  Beep</b></p><p>  MsgBox ("當(dāng)前記錄已是最后一條!")</

91、p><p>  Adodc1.Recordset.MoveLast</p><p><b>  End If</b></p><p>  ElseIf StrComp(Button.Key, "btnLast") = 0 Then</p><p>  Adodc1.Recordset.MoveLast

92、'最后一條記錄</p><p>  ElseIf StrComp(Button.Key, "btnNew") = 0 Then '按下新增按鈕</p><p>  Text2.Enabled = True</p><p>  Text3.Enabled = True</p><p>  Text4.En

93、abled = True</p><p>  Text5.Enabled = True</p><p>  Text6.Enabled = True</p><p>  Text7.Enabled = True</p><p>  Text8.Enabled = True</p><p>  Text9.Enabled

94、 = True</p><p>  Text2.SetFocus</p><p>  Toolbar1.Buttons("btnModify").Enabled = True '提交按鈕變?yōu)榭捎?lt;/p><p>  ElseIf StrComp(Button.Key, "btnModify") = 0 Then &#

95、39;按下提交按鈕</p><p>  If MsgBox("確認(rèn)增加新的數(shù)據(jù)嗎?", vbYesNo) = vbYes Then</p><p>  Adodc1.Recordset.AddNew '增加新的數(shù)據(jù)</p><p>  Adodc1.Recordset("編號(hào)") = Text2.Text</p

96、><p>  Adodc1.Recordset("姓名") = Text3.Text</p><p>  Adodc1.Recordset("性別") = Combo2.Text</p><p>  Adodc1.Recordset("類型") = Text4.Text</p><p>

97、  Adodc1.Recordset("出生日期") = Text5.Text</p><p>  Adodc1.Recordset("有效證件") = Text6.Text</p><p>  Adodc1.Recordset("證件號(hào)碼") = Text7.Text</p><p>  Adodc1.R

98、ecordset("聯(lián)系方式") = Text8.Text</p><p>  Adodc1.Recordset("登記日期") = Text9.Text</p><p><b>  End If</b></p><p>  Adodc1.Recordset.Update '光標(biāo)移動(dòng)到新增加的

99、數(shù)據(jù)上</p><p>  '數(shù)據(jù)提交后清空文本框</p><p>  Text2.Text = ""</p><p>  Text3.Text = ""</p><p>  Text4.Text = ""</p><p>  Text5.Text =

100、 ""</p><p>  Text6.Text = ""</p><p>  Text7.Text = ""</p><p>  Text8.Text = ""</p><p>  Text9.Text = ""</p><

101、;p>  '設(shè)置數(shù)據(jù)提交后文本框不可用</p><p>  Text2.Enabled = False</p><p>  Text3.Enabled = False</p><p>  Text4.Enabled = False</p><p>  Text5.Enabled = False</p><p&

102、gt;  Text6.Enabled = False</p><p>  Text7.Enabled = False</p><p>  Text8.Enabled = False</p><p>  Text9.Enabled = False</p><p>  Toolbar1.Buttons("btnModify")

103、.Enabled = False '提交按鈕變?yōu)椴豢捎?lt;/p><p>  ElseIf StrComp(Button.Key, "btnDelete") = 0 Then '按下刪除按鈕</p><p>  If MsgBox("數(shù)據(jù)刪除后不可恢復(fù),確定要?jiǎng)h除嗎?", vbYesNo) = vbYes Then</p>

104、<p>  Adodc1.Recordset.Delete</p><p><b>  End If</b></p><p>  ElseIf StrComp(Button.Key, "btnExit") = 0 Then '返回主頁面</p><p><b>  Hide</b>

105、;</p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  '定義從首記錄開始向下搜索的函數(shù)FindFirst</p><p>  Function FindFirst(rs As ADODB.Recordset, ByVal

106、 criteria As String)</p><p>  On Error Resume Next</p><p>  rs.MoveFirst</p><p>  rs.Find criteria</p><p>  FindFirst = Not rs.EOF And Err.Number = 0</p><p&g

107、t;  End Function</p><p>  '定義從下一條記錄開始查詢的函數(shù)FindNext</p><p>  Function FindNext(rs As ADODB.Recordset, ByVal criteria As String)</p><p>  On Error Resume Next</p><p>

108、  rs.Find criteria, 1</p><p>  FindNext = Not rs.EOF And Err.Number = 0</p><p>  End Function</p><p>  讀者檔案管理功能模塊已經(jīng)完成!</p><p>  建立圖書信息管理模塊</p><p>  新建一個(gè)窗體,

109、命名為tsxxgl,名稱為“圖書信息”,各控件的屬性和設(shè)置與“讀者檔案管理功能模塊”相似。為該窗體編寫如下代碼:</p><p>  '調(diào)用函數(shù)FindFirst和FindNext從第一條開始向下搜索,并把搜索到符合條件的數(shù)據(jù)寫到列表框中</p><p>  Private Sub Command1_Click()</p><p>  criteria =

110、Combo1 & " like" & " '%" & Text1.Text & "%'"</p><p>  ret = FindFirst(Adodc1.Recordset, criteria)</p><p><b>  While ret</b></

111、p><p>  List1.AddItem Adodc1.Recordset("編號(hào)") & "," & Adodc1.Recordset("書名") & " ," & Adodc1.Recordset("作者") & "  ," & Ad

112、odc1.Recordset("出版社") & "  ," & Adodc1.Recordset("價(jià)格") & "  ," & Adodc1.Recordset("現(xiàn)存量")</p><p>  ret = FindNext(Adodc1.Recordset, criteria)

113、</p><p><b>  Wend</b></p><p><b>  End Sub</b></p><p>  ‘'窗體激活后組合框1裝入所有字段</p><p>  Private Sub Form_Activate()</p><p>  Combo1.C

114、lear</p><p>  For i = 0 To Adodc1.Recordset.Fields.Count - 1</p><p>  Combo1.AddItem Adodc1.Recordset.Fields(i).Name</p><p>  Combo1.ListIndex = 0</p><p><b>  Nex

115、t</b></p><p>  List1.AddItem "編號(hào)  書名  作者   出版社  價(jià)格  現(xiàn)存量"</p><p><b>  End Sub</b></p><p>  Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Bu

116、tton)</p><p>  If StrComp(Button.Key, "btnFirst") = 0 Then</p><p>  Adodc1.Recordset.MoveFirst '首記錄</p><p>  ElseIf StrComp(Button.Key, "btnBefore") = 0 The

117、n</p><p>  Adodc1.Recordset.MovePrevious '上一條記錄</p><p>  If Adodc1.Recordset.BOF = True Then '當(dāng)超過文件開頭時(shí),光標(biāo)自動(dòng)移動(dòng)到第一條</p><p><b>  Beep</b></p><p>  Msg

118、Box ("當(dāng)前記錄已是第一條!")</p><p>  Adodc1.Recordset.MoveFirst</p><p><b>  End If</b></p><p>  ElseIf StrComp(Button.Key, "btnNext") = 0 Then</p><

119、p>  Adodc1.Recordset.MoveNext '下一條記錄</p><p>  If Adodc1.Recordset.EOF = True Then '當(dāng)超過文件結(jié)尾時(shí),光標(biāo)自動(dòng)移動(dòng)到最后一條</p><p><b>  Beep</b></p><p>  MsgBox ("當(dāng)前記錄已是最后

120、一條!")</p><p>  Adodc1.Recordset.MoveLast</p><p><b>  End If</b></p><p>  ElseIf StrComp(Button.Key, "btnLast") = 0 Then</p><p>  Adodc1.Recor

121、dset.MoveLast '最后一條記錄</p><p>  ElseIf StrComp(Button.Key, "btnNew") = 0 Then '按下新增按鈕</p><p>  Text2.Enabled = True</p><p>  Text3.Enabled = True</p><

122、p>  Text4.Enabled = True</p><p>  Text5.Enabled = True</p><p>  Text6.Enabled = True</p><p>  Text7.Enabled = True</p><p>  Text2.SetFocus</p><p>  Tool

123、bar1.Buttons("btnModify").Enabled = True '提交按鈕變?yōu)榭捎?lt;/p><p>  ElseIf StrComp(Button.Key, "btnModify") = 0 Then '按下提交按鈕</p><p>  If MsgBox("確認(rèn)增加新的數(shù)據(jù)嗎?", vbYes

124、No) = vbYes Then</p><p>  Adodc1.Recordset.AddNew '增加新的數(shù)據(jù)</p><p>  Adodc1.Recordset("編號(hào)") = Text2.Text</p><p>  Adodc1.Recordset("書名") = Text3.Text</p>

125、;<p>  Adodc1.Recordset("作者") = Text4.Text</p><p>  Adodc1.Recordset("出版社") = Text5.Text</p><p>  Adodc1.Recordset("價(jià)格") = Text6.Text</p><p>  A

126、dodc1.Recordset("現(xiàn)存量") = Text7.Text</p><p><b>  End If</b></p><p>  Adodc1.Recordset.Update '光標(biāo)移動(dòng)到新增加的數(shù)據(jù)上</p><p>  '數(shù)據(jù)提交后清空文本框</p><p>  

127、Text2.Text = ""</p><p>  Text3.Text = ""</p><p>  Text4.Text = ""</p><p>  Text5.Text = ""</p><p>  Text6.Text = ""<

128、;/p><p>  Text7.Text = ""</p><p>  '設(shè)置數(shù)據(jù)提交后文本框不可用</p><p>  Text2.Enabled = False</p><p>  Text3.Enabled = False</p><p>  Text4.Enabled = False&l

129、t;/p><p>  Text5.Enabled = False</p><p>  Text6.Enabled = False</p><p>  Text7.Enabled = False</p><p>  Toolbar1.Buttons("btnModify").Enabled = False '提交按鈕變?yōu)?/p>

130、不可用</p><p>  ElseIf StrComp(Button.Key, "btnDelete") = 0 Then '按下刪除按鈕</p><p>  If MsgBox("數(shù)據(jù)刪除后不可恢復(fù),確定要?jiǎng)h除嗎?", vbYesNo) = vbYes Then</p><p>  Adodc1.Recordse

131、t.Delete</p><p><b>  End If</b></p><p>  ElseIf StrComp(Button.Key, "btnExit") = 0 Then '返回主頁面</p><p><b>  Hide</b></p><p><b&

132、gt;  End If</b></p><p><b>  End Sub</b></p><p>  '定義從首記錄開始向下搜索的函數(shù)FindFirst</p><p>  Function FindFirst(rs As ADODB.Recordset, ByVal criteria As String)</p&g

133、t;<p>  On Error Resume Next</p><p>  rs.MoveFirst</p><p>  rs.Find criteria</p><p>  FindFirst = Not rs.EOF And Err.Number = 0</p><p>  End Function</p>

134、<p>  '定義從下一條記錄開始查詢的函數(shù)FindNext</p><p>  Function FindNext(rs As ADODB.Recordset, ByVal criteria As String)</p><p>  On Error Resume Next</p><p>  rs.Find criteria, 1</p&

135、gt;<p>  FindNext = Not rs.EOF And Err.Number = 0</p><p>  End Function</p><p>  圖書信息管理功能模塊已經(jīng)完成</p><p>  建立圖書借閱信息管理模塊</p><p>  新建一個(gè)窗體,命名為tsjygl,名稱為“圖書借閱信息”,各控件的屬

136、性和設(shè)置與“讀者檔案管理功能模塊”相似。為該窗體編寫如下代碼:</p><p>  '調(diào)用函數(shù)FindFirst和FindNext從第一條開始向下搜索,并把搜索到符合條件的數(shù)據(jù)寫到列表框中</p><p>  Private Sub Command1_Click()</p><p>  criteria = Combo1 & " like&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論