數(shù)據(jù)庫課程設計--圖書管理_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目錄</b></p><p><b>  第1章 緒論2</b></p><p>  1.1系統(tǒng)開發(fā)背景介紹2</p><p>  1.2開發(fā)工具的選擇2</p><p>  1.3系統(tǒng)主要內容簡介 2</p><p>  第2章 需求分

2、析3</p><p>  2.1 總體需求3</p><p>  2.2 管理員的需求分析3</p><p>  2.3 借閱/還書的需求分析3</p><p>  2.4 借閱者的需求分析3</p><p>  2.5 圖書信息的需求分析3</p><p>  2.6 實際功能

3、4</p><p>  第3章 概念結構設計5</p><p>  3.1 E-R圖簡介5</p><p>  3.2本系統(tǒng)的總體E-R圖6</p><p>  第4章 數(shù)據(jù)庫設計7</p><p><b>  4.1數(shù)據(jù)庫表7</b></p><p>  4.1

4、.1 圖書表7</p><p>  4.1.2 日期限定表7</p><p>  4.1.3 年級表8</p><p>  4.1.4學院表8</p><p>  4.1.5管理員表8</p><p>  4.1.6借閱者表9</p><p>  4.1.7書種表9</p&g

5、t;<p>  第5章 數(shù)據(jù)庫的實現(xiàn)與程序10</p><p>  5.1登錄界面設計10</p><p>  5.2管理員信息設計12</p><p>  5.3借閱/還書管理設計21</p><p><b>  課程設計總結31</b></p><p><b>

6、;  學習體會32</b></p><p><b>  致謝33</b></p><p><b>  參考文獻34</b></p><p><b>  緒論</b></p><p>  1.1系統(tǒng)開發(fā)背景介紹</p><p>  現(xiàn)在隨

7、著人們生活質量的提高,人們對圖書的需求越來越來豐富,并且需要圖書的數(shù)量也日趨增加。隨著人們對圖書需求的增加,圖書管理者對圖書的管理就日趨的困難,傳統(tǒng)的純手工記錄圖書記錄已經(jīng)發(fā)揮不了它原有的功能,反之,還會影響圖書管理的功能,使用效率極低。在這樣的人們對圖書需求日趨增加的情況下,電子記錄管理圖書就被廣泛應用起來。所以圖書管理系統(tǒng)就應用而生。</p><p><b>  1.2系統(tǒng)開發(fā)工具</b>

8、;</p><p>  系統(tǒng)運行平臺:Windows7。</p><p>  系統(tǒng)前臺開發(fā)平臺即:VisualBasic6.0。</p><p>  系統(tǒng)后臺開發(fā)平臺即數(shù)據(jù)庫管理系統(tǒng)軟件:SQLServer2000。</p><p>  1.3系統(tǒng)主要內容簡介</p><p>  本系統(tǒng)主要是針對圖書管理中出現(xiàn)的一些問

9、題提供一些解決方法,并且應運計算機信息管理系統(tǒng)結合。其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。前臺我們采用功能強大的可視化開發(fā)軟件VB開發(fā)設計主界面,利用SQLServer做為后臺數(shù)據(jù)庫。主要分成登錄信息管理、管理員信息管理、借閱/還書信息管理、借閱者信息管理、圖書信息管理等功能模塊。</p><p><b>  需求分析</b></p><p&

10、gt;<b>  2.1總體需求</b></p><p>  這一章將介紹本系統(tǒng)的各個部分的需求。</p><p>  2.2管理員的需求分析</p><p>  管理者基本信息,包括管理者編號,管理者姓名,登陸密碼,電話號碼。</p><p>  其中本系統(tǒng)中還包含管理者信息的修改,增加,刪除等功能。并且這個系統(tǒng)管理員

11、經(jīng)過登陸窗口才可進入。管理員在整個系統(tǒng)中起到統(tǒng)籌全局的功能,管理員可以對系統(tǒng)中各個部分起到控制的作用,可以增加、修改、刪除借閱者信息,增加、修改圖書信息,并且可以查詢借閱與還書情況,在本系統(tǒng)中貫穿整個系統(tǒng)。</p><p>  2.3借閱/還書的需求分析</p><p>  借閱基本信息包括借閱者信息,借閱者已借閱書籍,借書日期,借書編號等信息。</p><p> 

12、 還書基本信息包括借閱者編號,借閱者還書的編號,并且附帶有查詢功能,查看借閱者借閱的圖書是否過期。</p><p>  2.4借閱者的需求分析</p><p>  借閱者基本信息包括借閱者借閱卡號,借閱者姓名,借閱者學號,所在院校,電話號碼等基本信息。其中本系統(tǒng)中還包含借閱者的增添與刪除,可以實現(xiàn)新生入學借閱的增加,畢業(yè)生的借閱信息的刪除功能。</p><p>  

13、2.5圖書信息的需求分析</p><p>  圖書基本信息包括圖書編號,圖書姓名,圖書作者,圖書ISBN,圖書種類,圖書數(shù)量等基本信息。</p><p>  本系統(tǒng)中增加了圖書庫存管理功能,可以查看圖書所在庫存的狀態(tài),看是否可以借閱。并且增加了圖書增加功能,圖書修改功能,圖書查詢功能,可以查詢圖書在庫各種信息,與借閱者的聯(lián)系也一目了然。</p><p><b&

14、gt;  2.6 實際功能</b></p><p>  圖2-1. 圖書管理系統(tǒng)結構圖</p><p><b>  概念結構設計</b></p><p>  3.1 E-R圖簡介</p><p>  實體-聯(lián)系圖(Entity-RelationDiagram)用來建立數(shù)據(jù)模型,在數(shù)據(jù)庫系統(tǒng)概論中屬于概念設計階

15、段,形成一個獨立于機器,獨立于DBMS的ER圖模型。通常將它簡稱為ER圖,相應地可把用ER圖描繪的數(shù)據(jù)模型稱為ER模型。ER圖提供了表示實體(即數(shù)據(jù)對象)、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。</p><p>  構成E-R圖的基本要素是實體、屬性和聯(lián)系,其表示方法為:</p><p>  實體型:用矩形表示,矩形框內寫明實體名;</p><p>  屬性

16、:用橢圓形或圓角矩形表示,并用無向邊將其與相應的實體連接起來;多值屬性由雙線連接;主屬性名稱下加下劃線;</p><p>  聯(lián)系:用菱形表示,菱形框內寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型</p><p>  在E-R圖中要明確表明1對多關系,1對1關系和多對多關系。</p><p>  1對1關系在兩個實體連線方向寫1;<

17、;/p><p>  1對多關系在1的一方寫1,多的一方寫N;</p><p>  多對多關系則是在兩個實體連線方向各寫N,M。</p><p>  實體與屬性之間并沒有形式上可以截然劃分的界限,但可以給出兩條準則:</p><p>  作為“屬性”不能再具有描述的性質;</p><p>  “屬性”不能與其他實體具有聯(lián)系。

18、</p><p>  3.2 本系統(tǒng)的E-R圖</p><p><b>  mn</b></p><p><b>  nm</b></p><p><b>  nm</b></p><p><b>  nm</b></

19、p><p>  圖3-1. 圖書管理系統(tǒng)總E-R圖</p><p><b>  數(shù)據(jù)庫設計</b></p><p><b>  4.1數(shù)據(jù)庫表</b></p><p>  圖書管理數(shù)據(jù)庫含7個表,它們分別為:圖書表(Book);日期限定表(DataResrict);年級表(Grade);學院 表(Ins

20、titute);管理員表(Lidrarian);借閱者表(Borrower);書種表(Title)。</p><p>  我們來看一下表的結構:</p><p><b>  4.1.1圖書表</b></p><p>  圖書表包括圖書編號、書名、狀態(tài)、借閱卡號、被借閱時間屬性,各個屬性的類型、長度、約束條件如表示</p><

21、p><b>  表4-1. 圖書表</b></p><p>  4.1.2日期限定表</p><p>  日期限定表包括書種、天數(shù)屬性,各個屬性的類型、長度、約束條件如表示</p><p>  表4-2. 日期限定表</p><p><b>  4.1.3 年級表</b></p>

22、<p>  年級表包括年級編號、名稱屬性,各個屬性的類型、長度、約束條件如表示</p><p><b>  表4-2. 年級表</b></p><p><b>  4.1.4學院表</b></p><p>  學院表包括學院編號、名稱屬性,各個屬性的類型、長度、約束條件如表示</p><p&

23、gt;<b>  表4-4. 學院表</b></p><p><b>  4.1.5管理員表</b></p><p>  管理員包括編號、ID、密碼、工作時間、電話屬性,各個屬性的類型、長度、約束條件如表示</p><p>  表4-5. 管理員表</p><p><b>  4.1.6借

24、閱者表</b></p><p>  借閱者包括借閱卡編號、學院編號、年級編號、姓名、學號、電話、已借書數(shù)目等屬性,各個屬性的類型、長度、約束條件如表示</p><p>  表4-6. 借閱者表</p><p><b>  4.1.7書種表</b></p><p>  書種表包括書名、作者、ISBSN、種類、數(shù)

25、目等屬性,各個屬性的類型、長度、約束條件如表示</p><p><b>  表4-7. 書種表</b></p><p><b>  數(shù)據(jù)庫的實現(xiàn)與程序</b></p><p><b>  5.1登陸界面設計</b></p><p>  輸入“用戶名”,“密碼”,點擊“確認”進入

26、主題框;</p><p><b>  圖5-1登陸</b></p><p>  該登陸界面代碼如下所示:</p><p><b>  源代碼:</b></p><p>  Public OK As Boolean</p><p>  Private Sub cmdCancel

27、_Click()</p><p>  OK = False</p><p><b>  Me.Hide</b></p><p><b>  End Sub</b></p><p>  Private Sub cmdLogin_Click()</p><p><b>

28、  '檢驗數(shù)據(jù)的有效性</b></p><p>  If Trim(txtUserName.Text = "") Then</p><p>  MsgBox "請輸入用戶名!"</p><p>  txtUserName.SetFocus</p><p><b>  Exi

29、t Sub</b></p><p>  ElseIf Trim(txtPassword = "") Then</p><p>  MsgBox "請輸入密碼!"</p><p>  txtPassword.SetFocus</p><p><b>  Exit Sub</b&

30、gt;</p><p><b>  Else</b></p><p>  Dim myDbOper As New DbOperation</p><p>  Dim rst As ADODB.Recordset</p><p>  Dim sql As String</p><p><b&g

31、t;  '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語句</b></p><p>  sql = "SELECT * FROM Librarian WHERE Id='" + txtUserName + "

32、' AND Password='" + txtPassword + "'"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p>  If (Not rst.EOF) Then</p><p><b>  OK = True</b></p

33、><p><b>  Me.Hide</b></p><p>  FrmMain.Show 0</p><p><b>  Else</b></p><p>  MsgBox "用戶名和密碼錯誤,請重新輸入."</p><p><b>  End I

34、f</b></p><p><b>  rst.Close</b></p><p><b>  '關閉連接</b></p><p>  myDbOper.DB_DisConnect</p><p><b>  End If</b></p>&l

35、t;p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p><b>  End Sub</b></p><p>  Private Sub Label1_Click()</p><p><b>  End Sub&l

36、t;/b></p><p>  5.2管理員管理設計</p><p>  管理員窗口的設計主要包括“修改”、“添加”、“刪除”,“刷新”等功能。</p><p>  添加管理員是依照窗口的信息依次填寫,點擊“提交”即可;</p><p>  圖5-2進入管理員信息欄</p><p>  圖5-3. 添加管理者&l

37、t;/p><p>  該管理者添加的代碼如下:</p><p><b>  源代碼:</b></p><p>  Private Sub cmdExit_Click()</p><p><b>  Me.Hide</b></p><p><b>  End Sub<

38、;/b></p><p>  Private Sub cmdSubmit_Click()</p><p><b>  '檢驗數(shù)據(jù)的有效性</b></p><p>  If Trim(txtId) = "" Then</p><p>  MsgBox "請輸入登錄Id"

39、</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  If Trim(txtPwd) = "" Then</p><p>  MsgBox "請輸入登錄密碼"</p><

40、;p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  Dim myDbOper As New DbOperation</p><p>  Dim rst As ADODB.Recordset</p><p>  Dim sql As

41、String</p><p><b>  '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語句</b></p><p>  sql = "SELECT * FROM Librarian WHERE seq

42、='" + Trim(txtSeq) + "'"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p>  If rst.EOF = True Then</p><p><b>  With rst</b></p><p>&l

43、t;b>  .AddNew</b></p><p>  !seq = Me.txtSeq</p><p>  !id = Me.txtId</p><p>  !Password = Me.txtPwd</p><p>  !onJobTime = Me.txtTime</p><p>  !tele

44、phone = Me.txtPhone</p><p><b>  .Update</b></p><p><b>  End With</b></p><p>  MsgBox "信息添加成功."</p><p><b>  Else</b></p&

45、gt;<p>  MsgBox "該編號已經(jīng)存在,請重新輸入."</p><p><b>  End If</b></p><p><b>  rst.Close</b></p><p><b>  '關閉連接</b></p><p>

46、  myDbOper.DB_DisConnect</p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p><b>  End Sub</b></p><p>  Private Sub Frame1_DragDrop(S

47、ource As Control, X As Single, Y As Single)</p><p><b>  End Sub</b></p><p>  Private Sub Label1_Click()</p><p><b>  End Sub</b></p><p>  Private

48、 Sub txtId_Change()</p><p><b>  End Sub</b></p><p>  Private Sub txtPwd_Change()</p><p><b>  End Sub</b></p><p>  刪除圖書管理員是在管理員列表中點擊要刪除的那一行,點擊“刪除

49、”即可;</p><p><b>  圖5-4刪除管理者</b></p><p>  修改管理員首先在管理員列表中點擊要修改的管理員信息,在編輯區(qū)填寫要修改的信息,點擊“修改”即可;</p><p><b>  圖5-5修改管理者</b></p><p>  圖5-6 刷新管理員列表</p&g

50、t;<p>  該管理者的修改、刪除代碼如下所示:</p><p><b>  源代碼:</b></p><p>  Private Sub cmdAdd_Click()</p><p>  FrmAddManager.Show 1</p><p><b>  End Sub</b>&

51、lt;/p><p>  Private Sub cmdDelete_Click()</p><p>  Dim tmpSeq As String</p><p>  If Adodc1.Recordset.BOF = True Then</p><p>  MsgBox "請選擇記錄"</p><p>

52、<b>  Exit Sub</b></p><p><b>  End If</b></p><p>  p = Adodc1.Recordset.AbsolutePosition</p><p>  tmpSeq = Trim(Adodc1.Recordset.Fields(0))</p><p&g

53、t;<b>  '確認刪除</b></p><p>  If MsgBox("是否刪除當前行?", vbYesNo, "確認") = vbYes Then</p><p>  Dim myDbOper As New DbOperation</p><p>  Dim rst As ADODB.Re

54、cordset</p><p>  Dim sql As String</p><p><b>  '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語句</b></p><p>  sql

55、= "SELECT * FROM Librarian WHERE seq='" + Trim(txtSeq) + "'"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p>  If (Not rst.EOF) Then</p><p><b>  W

56、ith rst</b></p><p>  .Delete adAffectCurrent</p><p><b>  .Update</b></p><p><b>  End With</b></p><p><b>  Else</b></p>

57、<p>  MsgBox "發(fā)生錯誤,請重新操作."</p><p><b>  End If</b></p><p>  Refresh_DataList</p><p>  If p - 1 > 0 Then</p><p>  Adodc1.Recordset.Move 0<

58、;/p><p>  Adodc1.Recordset.Move p - 1</p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  Priva

59、te Sub cmdEdit_Click()</p><p><b>  '檢驗數(shù)據(jù)的有效性</b></p><p>  If Trim(txtId) = "" Then</p><p>  MsgBox "請輸入登錄Id"</p><p><b>  Exit

60、Sub</b></p><p><b>  End If</b></p><p>  If Trim(txtPwd) = "" Then</p><p>  MsgBox "請輸入登錄密碼"</p><p><b>  Exit Sub</b>&l

61、t;/p><p><b>  End If</b></p><p>  Dim myDbOper As New DbOperation</p><p>  Dim rst As ADODB.Recordset</p><p>  Dim sql As String</p><p><b> 

62、 '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語句</b></p><p>  sql = "SELECT * FROM Librarian WHERE seq='" + Trim(txtSeq) + "&

63、#39;"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p>  If (Not rst.EOF) Then</p><p>  rst!id = Me.txtId</p><p>  rst!Password = Me.txtPwd</p><p>  r

64、st!onJobTime = Me.txtTime</p><p>  rst!telephone = Me.txtPhone</p><p>  rst.Update</p><p>  MsgBox "信息修改成功."</p><p><b>  Else</b></p><p

65、>  MsgBox "發(fā)生錯誤,請重新輸入."</p><p><b>  End If</b></p><p><b>  rst.Close</b></p><p><b>  '關閉連接</b></p><p>  myDbOper.DB

66、_DisConnect</p><p>  Refresh_DataList</p><p><b>  End Sub</b></p><p>  Private Sub cmdExit_Click()</p><p><b>  Me.Hide</b></p><p>&

67、lt;b>  End Sub</b></p><p>  Private Sub cmdRefresh_Click()</p><p>  Refresh_DataList</p><p><b>  End Sub</b></p><p>  Private Sub DataGrid1_Click()

68、</p><p>  If Adodc1.Recordset.BOF = True Then</p><p>  MsgBox "請選擇記錄"</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p

69、><b>  '保存光標位置</b></p><p>  p = Adodc1.Recordset.AbsolutePosition</p><p>  '讀取當前記錄的各列數(shù)據(jù)</p><p>  Me.txtSeq = Trim(Adodc1.Recordset.Fields(0))</p><p&

70、gt;  Me.txtId = Trim(Adodc1.Recordset.Fields(1))</p><p>  Me.txtPwd = Trim(Adodc1.Recordset.Fields(2))</p><p>  Me.txtTime = Trim(Adodc1.Recordset.Fields(3))</p><p>  Me.txtPhone =

71、Trim(Adodc1.Recordset.Fields(4))</p><p>  Refresh_DataList</p><p><b>  '恢復光標位置</b></p><p>  Adodc1.Recordset.Move 0</p><p>  Adodc1.Recordset.Move p - 1

72、</p><p><b>  End Sub</b></p><p>  Private Sub Refresh_DataList()</p><p><b>  '刷新管理員列表</b></p><p>  Adodc1.RecordSource = "SELECT * FROM

73、 Librarian ORDER BY seq"</p><p>  Adodc1.Refresh</p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p><b>  End Sub</b></p>

74、<p>  Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)</p><p><b>  End Sub</b></p><p>  Private Sub Label4_Click()</p><p><b>  End S

75、ub</b></p><p>  5.3 借閱/還書管理設計</p><p>  借閱圖書時首先要輸入“借書卡號”,點擊“確定”,就會出來借閱者的一些的基本信息,再在“借書登記欄”中輸入書刊編號查詢,如果在庫是,點擊“提交”即可;</p><p><b>  圖5-7 借閱</b></p><p><b

76、>  借閱其代碼如下;</b></p><p><b>  源代碼:</b></p><p>  Private Sub cmdExit_Click()</p><p><b>  Me.Hide</b></p><p><b>  End Sub</b>&l

77、t;/p><p>  Private Sub cmdEnter_Click()</p><p><b>  '檢驗數(shù)據(jù)的有效性</b></p><p>  If Trim(txtBorrId) = "" Then</p><p>  MsgBox "請輸入借書卡號"</p

78、><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  Dim myDbOper As New DbOperation</p><p>  Dim rst As ADODB.Recordset</p><p>  Di

79、m sql As String</p><p><b>  '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語句</b></p><p>  sql = "SELECT b.StudentNum,b.na

80、me,i.Institute,g.Grade,b.teleNumber,b.borrowBookNum " _</p><p>  + "FROM Borrower b,Institute i,Grade g " _</p><p>  + "WHERE b.InstituteID=i.InstituteID AND b.GradeID=g.Grad

81、eID " _</p><p>  + "AND BorrowerId='" + txtBorrId + "'"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p>  If (Not rst.EOF) Then</p><p>

82、;<b>  With rst</b></p><p>  lblStuNum.Caption = .Fields(0)</p><p>  lblName.Caption = .Fields(1)</p><p>  lblInstitute.Caption = .Fields(2)</p><p>  lblGrad

83、e.Caption = .Fields(3)</p><p>  lblPhone.Caption = .Fields(4)</p><p><b>  End With</b></p><p>  Refresh_DataList1</p><p><b>  Else</b></p>

84、<p>  MsgBox "用戶不存在,請重新操作."</p><p><b>  End If</b></p><p><b>  rst.Close</b></p><p><b>  '關閉連接</b></p><p>  myD

85、bOper.DB_DisConnect</p><p><b>  End Sub</b></p><p>  Private Sub cmdQuery_Click()</p><p><b>  '檢驗數(shù)據(jù)的有效性</b></p><p>  If Trim(txtBookId) = &q

86、uot;" Then</p><p>  MsgBox "請輸入書刊編號"</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  Dim myDbOper As New DbOperation<

87、/p><p>  Dim rst As ADODB.Recordset</p><p>  Dim sql As String</p><p><b>  '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語

88、句</b></p><p>  sql = "SELECT b.BookID as 書刊編號,b.name as 名稱,b.loan as 狀態(tài)," _</p><p>  + "t.author as 作者,t.isbsn as isbsn,t.type as 類型,b.BorrowDate as 借書日期 " _</p>

89、<p>  + "FROM Book b , Title t WHERE b.name=t.name AND b.BookID='" _</p><p>  + Trim(txtBookId) + "'"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p

90、>  If (Not rst.EOF) Then</p><p>  Refresh_DataList2 (sql)</p><p><b>  Else</b></p><p>  MsgBox "該書刊不存在,請重新操作."</p><p><b>  End If</b&g

91、t;</p><p><b>  rst.Close</b></p><p><b>  '關閉連接</b></p><p>  myDbOper.DB_DisConnect</p><p><b>  End Sub</b></p><p> 

92、 Private Sub Refresh_DataList1()</p><p>  Dim sql As String</p><p>  sql = "SELECT bo.BookID as 書刊編號,bo.name as 名稱,bo.BorrowDate as 借書日期 " _</p><p>  + "From Borrower

93、 b,Book bo " _</p><p>  + "WHERE b.BorrowerID=bo.borrowerID and b.BorrowerID='" _</p><p>  + Trim(txtBorrId) + "'"</p><p>  Adodc1.RecordSource = sq

94、l</p><p>  Adodc1.Refresh</p><p>  Set DataGrid1.DataSource = Adodc1</p><p>  DataGrid1.ReBind</p><p><b>  End Sub</b></p><p>  Private Sub Ref

95、resh_DataList2(sql As String)</p><p>  Adodc2.RecordSource = sql</p><p>  Adodc2.Refresh</p><p>  Set DataGrid2.DataSource = Adodc2</p><p>  DataGrid2.ReBind</p>

96、<p><b>  End Sub</b></p><p>  Private Sub cmdSubmit_Click()</p><p><b>  '檢驗數(shù)據(jù)的有效性</b></p><p>  If Trim(txtBorrId) = "" Then</p>&l

97、t;p>  MsgBox "請輸入借書卡號"</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  If Trim(txtBookId) = "" Then</p><p>  Msg

98、Box "請輸入書刊編號"</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  Dim nowDate As New BookDate</p><p>  Dim myDbOper As New DbOper

99、ation</p><p>  Dim rst As ADODB.Recordset</p><p>  Dim sql As String</p><p>  Dim update1_sql As String</p><p>  Dim update2_sql As String</p><p><b>

100、  '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語句</b></p><p>  sql = "SELECT loan FROM Book WHERE BookId='" + Trim(txtBookId) + &q

101、uot;'"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p>  If Trim(rst.Fields(0)) = "在庫" Then</p><p><b>  '更新數(shù)據(jù)庫表</b></p><p>  update1

102、_sql = "UPDATE Book SET loan='借出',borrowerID='" _</p><p>  + Trim(txtBorrId) + "',BorrowDate='" _</p><p>  + nowDate.getDate + "' WHERE BookID=&#

103、39;" _</p><p>  + Trim(txtBookId) + "'"</p><p>  myDbOper.executeSQL (update1_sql)</p><p>  update2_sql = "UPDATE Borrower SET borrowBookNum=borrowBookNum+1

104、WHERE BorrowerId='" _</p><p>  + Trim(txtBorrId) + "'"</p><p>  myDbOper.executeSQL (update2_sql)</p><p>  Refresh_DataList1</p><p>  MsgBox &quo

105、t;操作成功."</p><p><b>  Else</b></p><p>  MsgBox "該書刊已經(jīng)借出,請重新操作."</p><p><b>  End If</b></p><p><b>  rst.Close</b></p

106、><p><b>  '關閉連接</b></p><p>  myDbOper.DB_DisConnect</p><p><b>  End Sub</b></p><p>  Private Sub DataGrid1_Click()</p><p><b>

107、;  End Sub</b></p><p>  Private Sub DataGrid2_Click()</p><p><b>  End Sub</b></p><p>  Private Sub Label5_Click()</p><p><b>  End Sub</b>&

108、lt;/p><p>  還書時輸入書刊編號查詢,確認無誤后點擊“還書提交”即可;</p><p><b>  圖5-8. 還書</b></p><p><b>  還書的代碼如下;</b></p><p><b>  源代碼:</b></p><p>  P

109、rivate Sub cmdExit_Click()</p><p><b>  Me.Hide</b></p><p><b>  End Sub</b></p><p>  Private Sub cmdQuery_Click()</p><p><b>  '檢驗數(shù)據(jù)的有效性

110、</b></p><p>  If Trim(txtBookId) = "" Then</p><p>  MsgBox "請輸入書刊編號"</p><p><b>  Exit Sub</b></p><p><b>  End If</b>&l

111、t;/p><p>  Dim myDbOper As New DbOperation</p><p>  Dim rst As ADODB.Recordset</p><p>  Dim sql As String</p><p><b>  '建立連接</b></p><p>  myDbO

112、per.DB_Connect</p><p><b>  '定義查詢語句</b></p><p>  sql = "SELECT * FROM Book WHERE BookID='" + Trim(txtBookId) + "'"</p><p>  Set rst = myDb

113、Oper.querySQL(sql)</p><p>  If (Not rst.EOF) Then</p><p>  Refresh_DataList</p><p>  '顯示書刊類別以及借用期限</p><p>  Dim type_rst As ADODB.Recordset</p><p>  Di

114、m type_sql As String</p><p>  type_sql = "SELECT t.type,d.Dates_restrict " _</p><p>  + "FROM Title t,DatesRestrict d,Book b " _</p><p>  + "WHERE d.type=t.

115、type and t.name=b.name and b.BookID='" _</p><p>  + Trim(txtBookId) + "'"</p><p>  Set type_rst = myDbOper.querySQL(type_sql)</p><p>  With type_rst</p>

116、<p>  lblBookType = .Fields(0)</p><p>  lblDateRestrict = .Fields(1)</p><p><b>  End With</b></p><p><b>  Else</b></p><p>  MsgBox "

117、該書刊不存在,請重新操作."</p><p><b>  End If</b></p><p><b>  rst.Close</b></p><p><b>  '關閉連接</b></p><p>  myDbOper.DB_DisConnect</p

118、><p><b>  End Sub</b></p><p>  Private Sub Refresh_DataList()</p><p>  Dim sql As String</p><p><b>  '定義查詢語句</b></p><p>  sql = &q

119、uot;SELECT b.BorrowerID as 借閱者編號,b.BorrowDate as 借書日期,b.BookID as 書刊編號,b.name as 名稱," _</p><p>  + "b.loan as 狀態(tài),t.author as 作者,t.isbsn as isbsn,t.type as 類型 " _</p><p>  + "

120、FROM Book b , Title t WHERE b.name=t.name AND b.BookID='" _</p><p>  + Trim(txtBookId) + "'"</p><p>  Adodc1.RecordSource = sql</p><p>  Adodc1.Refresh</p&

121、gt;<p>  Set DataGrid1.DataSource = Adodc1</p><p>  DataGrid1.ReBind</p><p><b>  End Sub</b></p><p>  Private Sub cmdSubmit_Click()</p><p><b> 

122、 '檢驗數(shù)據(jù)的有效性</b></p><p>  If Trim(txtBookId) = "" Then</p><p>  MsgBox "請輸入書刊編號"</p><p><b>  Exit Sub</b></p><p><b>  End

123、If</b></p><p>  Dim nowDate As New BookDate</p><p>  Dim myDbOper As New DbOperation</p><p>  Dim rst As ADODB.Recordset</p><p>  Dim sql As String</p><

124、;p>  Dim update1_sql As String</p><p>  Dim update2_sql As String</p><p><b>  '建立連接</b></p><p>  myDbOper.DB_Connect</p><p><b>  '定義查詢語句<

125、;/b></p><p>  sql = "SELECT loan,borrowerID FROM Book WHERE BookId='" + Trim(txtBookId) + "'"</p><p>  Set rst = myDbOper.querySQL(sql)</p><p>  If Tr

126、im(rst.Fields(0)) = "借出" Then</p><p><b>  '定義更新語句</b></p><p>  update1_sql = "UPDATE Book SET loan='在庫',borrowerID=Null,BorrowDate=Null " _</p>

127、<p>  + " WHERE BookID='" + Trim(txtBookId) + "'"</p><p>  myDbOper.executeSQL (update1_sql)</p><p>  update2_sql = "UPDATE Borrower SET borrowBookNum=borr

128、owBookNum-1 WHERE BorrowerId='" _</p><p>  + rst.Fields(1) + "'"</p><p>  myDbOper.executeSQL (update2_sql)</p><p>  Refresh_DataList</p><p>  Ms

129、gBox "操作成功."</p><p><b>  Else</b></p><p>  MsgBox "該書刊還未借出,請重新操作."</p><p><b>  End If</b></p><p><b>  rst.Close</b&

130、gt;</p><p><b>  '關閉連接</b></p><p>  myDbOper.DB_DisConnect</p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p><b

131、>  End Sub</b></p><p><b>  課程設計總結</b></p><p>  本系統(tǒng)為圖書管理系統(tǒng),由于時間原因,數(shù)據(jù)庫的大部分功能只得到了很小的體現(xiàn),有點部分沒能體現(xiàn)出來,只是最為基礎的部分在本系統(tǒng)中體現(xiàn)出來。其中實際功能包括管理員操控功能,借閱者信息修改功能,借閱/還書功能,圖書管理功能。</p><p&

132、gt;  在借閱卡掛失部分沒能具體的體現(xiàn)出來是本系統(tǒng)最大的缺點,還有最基本的逾期扣費功能等都沒能具體體現(xiàn)出來。</p><p><b>  學習體會</b></p><p>  通過本次數(shù)據(jù)庫課程設計,深深的體會到數(shù)據(jù)庫在日常生活的體現(xiàn),以前沒有接觸數(shù)據(jù)庫這門課程的時候,沒有感受到數(shù)據(jù)庫在我們生活的重要性。數(shù)據(jù)庫在日常生活中的應用那時候覺得是理所當然,就該存在的。不知

133、道一個數(shù)據(jù)庫的建立需要多道步驟,一步一步的實施下去,才能完成。</p><p>  本次數(shù)據(jù)庫的設計雖是一個小的系統(tǒng),但是它也包含了數(shù)據(jù)庫設計的所有步驟:需求分析,概念結構設計,邏輯結構設計,物理設計,實施,運行與維護。這些我們在課堂上也都學習了,但印象不是特別的深刻。本次課程設計充分的聯(lián)合書本知識,充分體現(xiàn)了理論聯(lián)合實際的。</p><p>  這次的課程設計不僅讓我學習到了數(shù)據(jù)庫的一些

134、實際的知識,還讓我學習了一些有用的開發(fā)工具例如Delphi,VB等可視的開發(fā)工具,學習它們是我更加確定了以后自己的發(fā)展方向,因為我發(fā)現(xiàn)我個人在軟件方面比較感興趣,如果自己在軟件部分發(fā)展會比在硬件方面更有發(fā)展前景。以后我會更加的專注于軟件方面的學習與實際的開發(fā),把我所學知識運用在生活中,并且為我以后的工作打基礎。</p><p><b>  致謝</b></p><p>

135、;  在這次數(shù)據(jù)庫課程設計中,感謝學校給我們提供了機房,感謝學院給我們一次動手操作的機會。在這次課程設計中,感謝劉中華、劉旭陽老師對我們的精心指導和諄諄教誨,使我在本次課程設計中順利完成在小組中的任務!同時感謝小組成員乃至同班同學的幫助,在此致以衷心的感謝!</p><p><b>  參考文獻:</b></p><p>  [1]劉大瑋·馬傳寶·

136、孫穎潔·SQL Server 數(shù)據(jù)庫項目案例導航·北京:清華大學出版社·2005</p><p>  [2]薩師煊·王珊·數(shù)據(jù)庫系統(tǒng)概論·高等教育出版社·2006</p><p>  [3]李濤·劉凱奎·王永皎·《數(shù)據(jù)庫開發(fā)與實例》·北京·清華大學出版社·201

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論