【文章內(nèi)容簡(jiǎn)介】
ALTER TABLE [dbo].[圖書借閱] WITH NOCHECK ADD CONSTRAINT [PK_圖書借閱] PRIMARY KEY CLUSTERED ( [借閱編號(hào)] ) ON [PRIMARY] GOALTER TABLE [dbo].[圖書歸還] WITH NOCHECK ADD CONSTRAINT [PK_圖書歸還] PRIMARY KEY CLUSTERED ( [歸還編號(hào)] ) ON [PRIMARY] GOALTER TABLE [dbo].[圖書征訂] WITH NOCHECK ADD CONSTRAINT [PK_圖書征訂] PRIMARY KEY CLUSTERED ( [征訂編號(hào)] ) ON [PRIMARY] GOALTER TABLE [dbo].[圖書注銷] WITH NOCHECK ADD CONSTRAINT [PK_圖書注銷] PRIMARY KEY CLUSTERED ( [注銷編號(hào)] ) ON [PRIMARY] GOALTER TABLE [dbo].[圖書類型] WITH NOCHECK ADD CONSTRAINT [PK_圖書類型] PRIMARY KEY CLUSTERED ( [類型編號(hào)] ) ON [PRIMARY] GOALTER TABLE [dbo].[圖書罰款] WITH NOCHECK ADD CONSTRAINT [PK_圖書罰款] PRIMARY KEY CLUSTERED ( [罰款編號(hào)] ) ON [PRIMARY] GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO 創(chuàng)建存儲(chǔ)過(guò)程系統(tǒng)使用了“sl_圖書征訂”,“sf_圖書借閱”,“sf_圖書歸還”三個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)的功能分別為征訂圖書入庫(kù)、借閱圖書出庫(kù)和歸還圖書入庫(kù),產(chǎn)生罰款信息等功能。具體計(jì)算方法在下面的腳本中有詳細(xì)的注釋。create proc sf_圖書借閱 asbegin tran 借書出庫(kù),減少圖書庫(kù)存量 update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) 1 from 圖書信息 as a, 圖書借閱 as b where = and =39。新借39。 設(shè)置借閱狀態(tài) update 圖書借閱 set 續(xù)借次數(shù)=0,狀態(tài)=39。未還39。 where 狀態(tài)=39。新借39。mitGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOcreate proc sf_圖書歸還 @借閱編號(hào) int, @罰款金額 moneyasbegin tran 借書出庫(kù),減少圖書庫(kù)存量 update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) + 1 from 圖書信息 as a, 圖書借閱 as b where = and =@借閱編號(hào) 如果罰金不是0, 在 圖書罰款 中產(chǎn)生記錄 if @罰款金額 0 insert into 圖書罰款(圖書編號(hào),讀者編號(hào),罰款日期,應(yīng)罰金額,是否交款) select 圖書編號(hào),讀者編號(hào),getdate(), @罰款金額, 0 from 圖書借閱 where 借閱編號(hào)=@借閱編號(hào) 插入圖書歸還表 insert into 圖書歸還(圖書編號(hào),讀者編號(hào),歸還時(shí)間) select 圖書編號(hào),讀者編號(hào),getdate() from 圖書借閱 where 借閱編號(hào)=@借閱編號(hào) 設(shè)置借閱狀態(tài) update 圖書借閱 set 狀態(tài)=39。已還39。 where 借閱編號(hào)=@借閱編號(hào)mitGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOcreate proc sf_圖書征訂asbegin tran 驗(yàn)收入庫(kù),增加圖書庫(kù)存量 update 圖書信息 set 庫(kù)存總量 = isnull(庫(kù)存總量,0) + , 現(xiàn)存量 = isnull(現(xiàn)存量,0) + , 入庫(kù)時(shí)間 = 圖書信息 as a, 圖書征訂 as bwhere = and =0 設(shè)置圖書征訂記錄的標(biāo)志,標(biāo)志為已驗(yàn)收 update 圖書征訂 set 驗(yàn)收日期=getdate(), 是否驗(yàn)收=1 where 是否驗(yàn)收=0mitGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO 創(chuàng)建工程啟動(dòng)Microsoft ,在主菜單中選擇[文件]|[新建]|[項(xiàng)目]命令,彈出[新建項(xiàng)目]對(duì)話框,在[項(xiàng)目類型]列表框中選擇[]選項(xiàng),然后在[模板]列表框中選擇[Window應(yīng)用程序]。在[名稱]文本框中輸入一個(gè)合適的方案文件名,選擇要存放的位置,然后[單擊]確定按鈕完成新項(xiàng)目的開啟。 利用系統(tǒng)默認(rèn)生成的窗體作為主窗體,并為其添加一個(gè)主菜單(MainMenu)控件和一個(gè)狀態(tài)欄(StatusBar)控件,各個(gè)控件的布局如圖712窗體。 圖712 系統(tǒng)主窗體這里將完成讀者類別設(shè)置功能。在該子窗體中,可以實(shí)現(xiàn)對(duì)圖書館管理系統(tǒng)中讀者類別數(shù)據(jù)的插入,編輯,刪除,瀏覽和查詢等各項(xiàng)操作。,右鍵單擊圖書館管理系統(tǒng)項(xiàng),在彈出的快捷菜單中選擇添加添加windows窗體菜單命令,在彈出的對(duì)話框中的模版欄內(nèi)選中“windows 窗體”,這將新建一個(gè)窗體,在其上放置如圖713所示控件。圖713 讀者類別設(shè)置窗體,并命名為da1,在數(shù)據(jù)適配器選項(xiàng)的第一步選擇libbook,然后在其設(shè)置的第四步生成SQL 語(yǔ)句窗口中的編輯框中分別輸入如下帶碼。數(shù)據(jù)適配器da1的SQL語(yǔ)句:Select * from 讀者類型 where(類型like?)然后選擇da1,在右邊的屬性窗口中單擊生成數(shù)據(jù)集選項(xiàng),將生成的數(shù)據(jù)集生成到DataSet1中,此后在托盤中將出現(xiàn)dataset1的圖標(biāo)。,雙擊dataset1,xsd ,在一個(gè)新窗口中將顯示數(shù)據(jù)集中各個(gè)數(shù)據(jù)表的架構(gòu),選中讀者類型表中的限制圖書和限制期刊兩個(gè)字段,在右邊的屬性欄中的default屬性欄中添入false,這樣做的目的是為這兩個(gè)數(shù)據(jù)庫(kù)中的bool字段在新增數(shù)據(jù)時(shí)添加默認(rèn)值,以便在程序中使用與數(shù)據(jù)集連接的CurrencyManager實(shí)現(xiàn)新增數(shù)據(jù)時(shí)自動(dòng)聚焦到新增的數(shù)據(jù)條目之上。如圖714所示。圖714 設(shè)置數(shù)據(jù)集中bool字段默認(rèn)值在該子窗體中,可實(shí)現(xiàn)對(duì)財(cái)務(wù)管理系統(tǒng)中會(huì)計(jì)科目表中的數(shù)據(jù)插入、編輯、刪除和瀏覽、查詢等各項(xiàng)操作。在解決方案資源管理器中,添加一個(gè)新的窗體,在其上放置如圖715所示控件。圖715 讀者信息設(shè)置窗體這里將完成圖書類別設(shè)置功能。在解決方案資源管理器中,添加一個(gè)新的窗體,在其上放置控件如圖716所示圖716 圖書類別設(shè)置窗體,添加一個(gè)新的窗體,并將名稱改為””在其上放置控件717所示。圖717 圖書檔案管理窗體,在其設(shè)置的第四步生成sql語(yǔ)句窗口中的編輯框中輸入如下代碼,并生成數(shù)據(jù)集dataset11。數(shù)據(jù)適配器da1的sql語(yǔ)句:Select * from 圖書信息where (條形碼 like?)and (編號(hào)like?) and(書名 like?),在數(shù)據(jù)集窗口中選中“圖書信息”表中的“是否注銷”字段,并在右邊的屬性欄中的defualt屬性欄中填寫false .,添加一個(gè)新的窗體,在其上放置控件如圖718所示圖718 圖書征訂窗體,在其設(shè)置的第四步生成sql語(yǔ)句窗口中的編輯框中輸入如下代碼,并生成數(shù)據(jù)集dataset11。數(shù)據(jù)適配器da1的sql語(yǔ)句:Select * where (是否驗(yàn)收=0) and (征訂編號(hào)like?) and (圖書編號(hào)?),在數(shù)據(jù)集窗口中中圖書征訂表中的是否驗(yàn)收字段,并在右邊的屬性欄中的defualt屬性欄中添入,添加一個(gè)新的窗體,在其上放置控件如圖719所示。,在其設(shè)置的第四步生成sql語(yǔ)句窗口中的編輯框中輸入如下代碼,并在高級(jí)選項(xiàng)中取消選中生成更新插入刪除語(yǔ)句。配置完成數(shù)據(jù)適配器后,生成數(shù)據(jù)集。在解決方案資源管理器中,添加一個(gè)新的窗體,在其上放置控件如圖720所示 完成圖書歸還功能,添加一個(gè)新的窗體,并將名稱改為bookreturn,cs在其上放置控件如圖721所示。圖721 圖書歸還窗體,在其設(shè)置的第四步 生成sql語(yǔ)句窗口中的編輯框中輸入如下代碼,并在高級(jí)選項(xiàng)中取消選擇生成新增,刪除,更新語(yǔ)句,然后生成到新數(shù)據(jù)集dataset2中,托盤中顯示為dataset21.,添加一個(gè)新的窗體。圖722 圖書罰款窗體,在其設(shè)置的第四步生成sql語(yǔ)句窗口中的編輯框中輸入如下代碼,并在高級(jí)選項(xiàng)中取消選擇生成新增,刪除,更新語(yǔ)句,然后生成到新數(shù)據(jù)集dataset2中,托盤中顯示為dataset21. 編譯并運(yùn)行系統(tǒng)