【文章內(nèi)容簡(jiǎn)介】
O operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0139。,39。20211512139。,39。0339。,39。0139。,39。cash39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0139。,39。20211514339。,39。0239。,39。0239。,39。cash39。,39。carn39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0139。,39。20211514339。,39。0539。,39。0139。,39。cash39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20214738439。,39。0139。,39。0239。,39。cash39。,39。carn39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20214738439。,39。0339。,39。0139。,39。cash39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20214738439。,39。0439。,39。0139。,39。cash39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20214738439。,39。0539。,39。0139。,39。cash39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20216897439。,39。0139。,39。0139。,39。cash39。,39。carn39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20216897439。,39。0539。,39。0139。,39。cash39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20216897439。,39。0239。,39。0139。,39。cash39。,39。carn39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0139。,39。20211512139。,39。0439。,39。0139。,39。card39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0139。,39。20211514339。,39。0639。,39。0139。,39。card39。,39。veg39。)。 INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(39。0239。,39。20216897439。,39。0339。,39。0139。,39。card39。,39。veg39。)。 22 6)向員工表中插入數(shù)據(jù) INSERT INTO worker(wno,wname,wpost,rno) VALUES(39。4048139。,39。張?zhí)m 39。,39。經(jīng)理39。,39。0139。)。 INSERT INTO worker(wno,wname,wpost,rno) VALUES(39。4048239。,39。馬燕 39。,39。廚師39。,39。0139。)。 INSERT INTO worker(wno,wname,wpost,rno) VALUES(39。4048339。,39。周揚(yáng) 39。,39。經(jīng)理39。,39。0239。)。 INSERT INTO worker(wno,wname,wpost,rno) VALUES(39。4048439。,39。王剛 39。,39。廚師39。,39。0239。)。 八. 數(shù)據(jù)庫(kù)的試運(yùn)行 23 視圖中的數(shù)據(jù) 視圖的查詢 24 經(jīng)計(jì)算,結(jié)果正確 九. 數(shù)據(jù)庫(kù)運(yùn)行和維護(hù) 系統(tǒng)開發(fā)工具的介紹 微軟公司的 Visual Basic 是 Windows 應(yīng)用程序開發(fā)工具,是目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_發(fā)工具。 Visual Basic 提供了大量的控件,這些控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也簡(jiǎn)化了界面設(shè)計(jì)過程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。利用 VISUAL BASIC 程序設(shè)計(jì)語(yǔ)言,可以很方便地設(shè)計(jì)出在 WINDOWS 環(huán)境下運(yùn)行的應(yīng)用程序。故而,實(shí)現(xiàn)本系統(tǒng) VB 是一個(gè)相對(duì)較好的選擇。 ADO 對(duì)象能夠存取到數(shù)據(jù)庫(kù)的內(nèi)容,首先要求數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序 ( ODBC 驅(qū)動(dòng)程序與 OLE DB 驅(qū)動(dòng)程序 )必須安裝上,否則, ADO 對(duì)象是無(wú)法存取數(shù)據(jù)庫(kù)中內(nèi)容, 25 其原理示意圖如下圖所 示: VB 與 SQL sever 的連接 如果在一臺(tái)新的電腦上應(yīng)該先附加數(shù)據(jù)庫(kù),就是說要先有數(shù)據(jù)資源。對(duì)于我們的實(shí)驗(yàn)關(guān)機(jī)后會(huì)使數(shù)據(jù)庫(kù)中我們自己建立的數(shù)據(jù)庫(kù)不見,所以可以進(jìn)行如同下圖的步驟: 客戶端 客戶端 客戶端 ADO 對(duì)象 各種數(shù)據(jù)庫(kù)所對(duì)應(yīng)的驅(qū)動(dòng)程序 各種數(shù)據(jù)庫(kù) (如 Access、 SQL Server以及 Oracle 等 ) 26 選擇 mdf 格式文件即可,會(huì)提示附加數(shù)據(jù)庫(kù)成功。 27 點(diǎn)擊 VB 工程處添加,新增一個(gè)模塊,在里面輸入如下代碼,即可實(shí)現(xiàn) VB 與數(shù)據(jù)庫(kù) SQL的連接。 Option Explicit Public strSQL As String Public Function ExecuteSQL(ByVal strSQL As String) As On Error GoTo ErrorTrap 39。聲明 對(duì)象變量 Dim objConnection As 39。聲明 對(duì)象變量 Dim objRecordset As 39。聲明一個(gè)存放 SQL 查詢條件的數(shù)組 Dim strArray() As String 39。定義新連接 Set objConnection = New 39。創(chuàng)建新連接 = ConnectString 39。打開數(shù)據(jù)庫(kù) 39。Split 函數(shù)返回一個(gè)下標(biāo)從零開始的一維數(shù)組,包含指定數(shù)目的子字符串 strArray = Split(strSQL) If InStr(INSER,DELETE,UPDATE, UCase(strArray(0))) Then 39。執(zhí)行 SQL 查詢 strSQL Else 39。打開記錄集 Set objRecordset = New Trim(strSQL), objConnection, _ adOpenKeyset, adLockOptimistic Set ExecuteSQL = objRecordset End If 39。釋放對(duì)象 Set objRecordset = Nothing Set objConnection = Nothing Exit Function 39。出錯(cuò)處理 ErrorTrap: Set objRecordset = Nothing Set objConnection = Nothing End Function 28 39。連接字符串賦值函數(shù) Public Function ConnectString() As String ConnectString=Provider=。Integrated Security=SSPI。Persist Security Info=False。Initial Catalog= 學(xué)校餐廳 。Data Source=.。 (本地?cái)?shù)據(jù)庫(kù)寫 .即可) End Function VB 實(shí)現(xiàn)學(xué)校餐廳的管理 登錄界面 分為管理員和學(xué)生兩種使用者,管理員有兩個(gè),初始登錄密碼是自己的工 號(hào),登錄后可以自己修改。 代碼如下: Private Sub Command1_Click() 39。聲明 對(duì)象變量 Dim objRecordset As 39。聲明 SQL 字符串 29 Dim strSQL As String Select Case opt Case 1 39。查找用戶名 strSQL = select mno from manager where mno=39。 amp。 _ Trim() amp。 39。 39。獲得符合輸入的用戶記錄集 Set objRecordset = ExecuteSQL(strSQL) 39。如果輸入的用戶不存在 If = True Then MsgBox 用戶名錯(cuò)誤! , vbExclamation + vbOKOnly, 警告 = 0 = Len() Exit Sub End If 39。從數(shù)據(jù)庫(kù)中獲得用戶名 mno = (0) 39。查找用密碼 strSQL = select mno from manager where mpsw=39。 amp。 _ Trim() amp。 39。 39。獲得符合輸入的密碼記錄集 Set objRecordset = ExecuteSQL(strSQL) 39。如果輸入的密碼不存在 If = True Or mno (0) Then MsgBox 密碼錯(cuò)誤! , vbExclamation + vbOKOnly, 警告 = 0 = Len() Exit Sub End If 39。顯示主界面 管理員界面 .Show Case 2 39。查找用戶名 strSQL = select sno from student where sno=39。 amp。 _ Trim() amp。 39。 39。獲得符合輸入的用戶記錄集 Set objRecordset = ExecuteSQL(strSQL) 30 39。如果輸入的用戶不存在 If = True Then MsgBox 用戶名錯(cuò)誤! , vbExclamation + vbOKOnly, 警告 = 0 = Len() Exit Sub End If 39。從數(shù)據(jù)庫(kù)中獲得用戶名 sno = (0) 39。查找用密碼 strSQL = select sno from student where spsw=39。 amp。 _ Trim() amp。 39。 39。獲得符合輸入的密碼記錄集 Set objRecordset = ExecuteSQL(strSQL) 39。如果輸入的密碼不存在 If = True Or sno (0) Then MsgBox 密碼錯(cuò)誤! , vbExclamation + vbOKOnly, 警告 = 0 = Len() Exit Sub End If 39。顯示主界面 學(xué)生界面 .StudentID = 39。 amp。 Trim() amp。 39。 學(xué)生界面 .Show