第一篇:數(shù)據(jù)庫課程設(shè)計(jì)——庫存銷售管理系統(tǒng)
數(shù)據(jù)庫課程設(shè)計(jì)
實(shí)驗(yàn)報(bào)告
姓名:黃世增
班級:計(jì)算機(jī)1403
學(xué)號:14116403051.實(shí)驗(yàn)名稱
使用Visual Basic 6.0和SQL Server 2014開發(fā)庫存銷售管理系統(tǒng)
2.實(shí)驗(yàn)?zāi)康?/p>
使用Visual Basic 6.0開發(fā)工具開發(fā)一個(gè)庫存銷售管理系統(tǒng),該系統(tǒng)采用SQL Server 2014數(shù)據(jù)庫保存庫存貨物信息,數(shù)據(jù)庫中包括貨物出入庫信息和商品銷售等信息。該系統(tǒng)包括系統(tǒng)登錄、貨物出入庫管理、商品銷售管理和商品統(tǒng)計(jì)管理等功能,通過這些功能實(shí)現(xiàn)對庫存中貨物信息和銷售信息進(jìn)行管理。
系統(tǒng)主要實(shí)現(xiàn)以下目標(biāo):
? 實(shí)現(xiàn)系統(tǒng)登錄及修改用戶密碼的功能。? 對庫存貨物的出入庫信息進(jìn)行管理。? 對商品的銷售信息進(jìn)行管理。
? 根據(jù)銷售日期統(tǒng)計(jì)商品的銷售數(shù)據(jù)。
3.實(shí)驗(yàn)步驟 3.1 設(shè)計(jì)數(shù)據(jù)庫
建立一個(gè)名為“DB_KCGL”的數(shù)據(jù)庫,根據(jù)前述的主要功能目標(biāo),需要建立3個(gè)數(shù)據(jù)表(關(guān)系):
(1)貨物的出入庫信息:保存貨物的出入庫信息
? id:庫存貨物信息的編號,主碼,建議長度為18的numeric類型。? tb_title:庫存貨物的名稱,建議長度為50的varchar類型。? tb_style:庫存貨物的類型,建議長度為50的varchar類型。? tb_nums:庫存貨物的數(shù)量,建議為整型int。? tb_values:庫存貨物的價(jià)格,實(shí)數(shù)類型real。
? tb_date:庫存貨物的入庫日期,時(shí)間日期類型datetime。
? tb_mark:庫存貨物的備注信息,建議長度為50的varchar類型。
(2)商品的銷售信息:保存商品的銷售信息
? id:商品銷售信息的編號,主碼,建議長度為18的numeric類型。
? ? ? ? tb_title:銷售商品的名稱,建議長度為50的varchar類型。tb_nums:建議為整型int。
tb_values:銷售商品的總價(jià),浮點(diǎn)類型float。
tb_date:商品銷售的日期,時(shí)間日期類型datetime。
(3)系統(tǒng)用戶的信息:保存系統(tǒng)用戶的信息
? id:用戶信息的編號,主碼,建議長度為18的numeric類型。? tb_name:用戶名稱,建議長度為50的varchar類型。
? tb_pas:用戶的密碼信息,建議長度為50的varchar類型。
3.2 設(shè)計(jì)連接數(shù)據(jù)庫的模塊
需要首先建立一個(gè)連接數(shù)據(jù)庫的模塊,這樣應(yīng)用程序才能與數(shù)據(jù)庫中的數(shù)據(jù)表取得連接,將數(shù)據(jù)信息從數(shù)據(jù)表中讀出到應(yīng)用程序中或通過應(yīng)用程序保存到數(shù)據(jù)表中。
為此,建立一個(gè)負(fù)責(zé)數(shù)據(jù)庫連接的模塊如下:
(1)選擇“工程”菜單下的“添加模塊”命令,在應(yīng)用程序中添加一個(gè)模塊Module1。(2)Module1模塊的實(shí)現(xiàn)如下: '數(shù)據(jù)連接模塊
Public MyStrs As String Public DB_AdoRs As New ADODB.Recordset
'后添加一個(gè)記錄集對象 Public DB_AdoRs1 As New ADODB.Recordset
'后添加一個(gè)記錄集對象 Public DB_AdoRs2 As New ADODB.Recordset
'后添加一個(gè)記錄集對象 Public Function Cnn()As ADODB.Connection
'定義連接字符串函數(shù)
Set Cnn = New ADODB.Connection
Cnn.Open “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DB_KCGL;Data Source=.” End Function Public Sub Main()
MyStrs = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=DB_KCGL;Data Source=.”
'顯示系統(tǒng)登錄窗體
Form1.Show End Sub(3)這里需要將程序的入口設(shè)置為模塊中的Main()函數(shù)。選擇“工程”菜單下的“工程屬性”命令,在“通用”標(biāo)簽中進(jìn)行相應(yīng)設(shè)置。
3.3 系統(tǒng)登陸模塊設(shè)計(jì)
在本庫存銷售管理系統(tǒng)中,只有授權(quán)用戶(管理員)可以登錄并進(jìn)行庫存和銷售信息管理與維護(hù),因此需要一個(gè)系統(tǒng)登錄界面,防止非法用戶登錄到系統(tǒng)中,從而保證了應(yīng)用程序的安全性和可靠性。
3.3.1 登錄窗體設(shè)計(jì)
設(shè)計(jì)如下的登錄窗體,在窗體中要添加一個(gè)ADO控件,命名為Adodc1。
(1)登錄窗體啟動之后,需要將系統(tǒng)用戶的信息數(shù)據(jù)表中的所有用戶名稱信息添加到窗體的ComboBox控件的Op_Name屬性中,即實(shí)現(xiàn)在“操作員名稱”下拉列表中可以出現(xiàn)系統(tǒng)當(dāng)前的操作員信息,供登錄用戶選擇。Private Sub Form_Load()'使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = “select * from 系統(tǒng)的用戶信息”
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Op_Name.Clear
'在添加數(shù)據(jù)時(shí),首先清空控件中的內(nèi)容
Do While Adodc1.Recordset.EOF = False
'將操作員信息添加到下拉列表框控件當(dāng)中
Op_Name.AddItem(Adodc1.Recordset.Fields(“tb_name”))
Adodc1.Recordset.MoveNext
Loop
End If End Sub
(2)當(dāng)用戶在“操作員名稱”下拉列表中選擇操作員的名稱,并且在“操作員密碼”文本框輸入正確的密碼之后,單擊“確定”按鈕將登錄到系統(tǒng)中,否則將無法登錄系統(tǒng)。具體實(shí)現(xiàn)如下:
Private Sub Cmd_Ok_Click()Adodc1.RecordSource = “select * from Tb_User where tb_name ='” & Op_Name.Text & “'” Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
MPassword = Adodc1.Recordset.Fields(“tb_pas”)
If Txt_Password.Text = MPassword Then
'判斷數(shù)據(jù)的密碼是否正確
Name1 = Op_Name.Text
Frm_Main.StatusBar1.Panels.Item(2).Text = “當(dāng)前操作員: ” + Adodc1.Recordset.Fields(“tb_name”)
Frm_Main.Show
'通過身份驗(yàn)證則顯示主窗體,登錄到系統(tǒng)當(dāng)中
Unload Me
Else
MsgBox “密碼不正確,請您確認(rèn)后重新輸入”, , “提示信息”
Txt_Password.Text = “"
Txt_Password.SetFocus
End If
Else
MsgBox ”對不起 沒有此用戶的信息“, , ”提示信息“
Op_Name.Text = ”“
Txt_Password.Text = ”“
End If End Sub 3.4 系統(tǒng)主界面的實(shí)現(xiàn)
3.4.1 主界面設(shè)計(jì)
(1)在工程中添加一個(gè)窗體,將窗體命名為Frm_main,將窗體Caption屬性設(shè)置為“庫存管理系統(tǒng)”。
(2)添加一個(gè)Toolbar控件,工具欄由“修改密碼”、“庫存管理”、“商品銷售”、“銷售統(tǒng)計(jì)”和“退出系統(tǒng)”5個(gè)按鈕組成。(3)添加一個(gè)StatusBar控件,使得狀態(tài)欄中能夠顯示登錄操作員姓名和當(dāng)前系統(tǒng)時(shí)間等信息。
(4)在主窗體上添加一個(gè)時(shí)鐘控件,用于顯示系統(tǒng)當(dāng)前日期和時(shí)間信息。
(5)在主窗體上添加一個(gè)Label標(biāo)簽控件,將其Caption屬性設(shè)置為“庫存管理系統(tǒng)”。
3.4.2 代碼實(shí)現(xiàn)
(1)窗體啟動時(shí),在窗體的狀態(tài)欄中將顯示當(dāng)前系統(tǒng)的日期信息: Private Sub Form_Load()
StatusBar1.Panels.Item(3).Text = Format(Now, ”yyyy年mm月dd日“)End Sub
(2)單擊窗口工具欄按鈕時(shí),將會調(diào)用系統(tǒng)的各個(gè)子功能模塊: Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
Frm_Pas.Show
'修改密碼
Case 2
Frm_Inout.Show '庫存管理
Case 3
Frm_Sale.Show
'商品銷售
Case 4
Frm_Stat.Show
'銷售統(tǒng)計(jì)
Case 5
End
'退出系統(tǒng)
End Select End Sub
(3)在時(shí)鐘控件的Timer事件中添加如下代碼,實(shí)現(xiàn)在狀態(tài)欄中顯示當(dāng)前系統(tǒng)時(shí)間的功能: Private Sub Timer1_Timer()
StatusBar1.Panels.Item(4).Text = Time End Sub
(4)再向狀態(tài)欄中添加公司名稱,操作員和公司網(wǎng)址信息。
系統(tǒng)主窗體的運(yùn)行界面如下圖所示:
3.5 出入庫管理模塊的設(shè)計(jì)與實(shí)現(xiàn)
該模塊主要是記錄和維護(hù)庫存中的貨物信息,其中包括對貨物信息的刪除、修改和保存等方面的功能。
3.5.1 窗體界面設(shè)計(jì)
(1)在工程中添加一個(gè)窗體,命名為Frm_Inout,將窗體Caption設(shè)置為“出入庫管理”。(2)在窗體上添加相應(yīng)的控件,如下圖所示。
(3)通過“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件添加到工具箱中,然后在窗體上添加1個(gè)數(shù)據(jù)表格控件DataGrid1。
(4)在窗體上添加一個(gè)ADO控件Adodc1,同時(shí)將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc1。
3.5.2 程序代碼實(shí)現(xiàn)
(1)窗口載入時(shí),將數(shù)據(jù)庫中商品表數(shù)據(jù)讀出。Private Sub Form_Load()
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫信息 order by id“
Adodc1.Refresh
AddTitle End Sub
其中,AddTitle函數(shù)用于向DataGrid1添加表頭,實(shí)現(xiàn)如下: '添加數(shù)據(jù)庫字段標(biāo)題的事件過程 Private Sub AddTitle()
DataGrid1.Columns.Item(0).Caption = ”編號“
DataGrid1.Columns.Item(1).Caption = ”名稱“
DataGrid1.Columns.Item(2).Caption = ”類型“
DataGrid1.Columns.Item(3).Caption = ”數(shù)量“
DataGrid1.Columns.Item(4).Caption = ”單價(jià)“
DataGrid1.Columns.Item(5).Caption = ”入庫日期“
DataGrid1.Columns.Item(6).Caption = ”備注“
End Sub
(2)點(diǎn)擊“添加”按鈕,清空編輯框,讓用戶輸入新的待添加內(nèi)容 Private Sub Command1_Click()'清空文本框中的內(nèi)容
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
Text1.SetFocus End Sub(3)點(diǎn)擊“刪除”按鈕,刪除選中當(dāng)前記錄。Private Sub Command2_Click()'刪除庫存信息
c = MsgBox(”確認(rèn)要刪除該信息嗎“, 17, ”提示信息“)
If c = vbOK Then
'如果有錯(cuò)誤則執(zhí)行錯(cuò)誤處理
On Error Resume Next
Set DB_AdoRs = Cnn.Execute(”Delete from 貨物的出入庫信息 where id='“ + Text1.Text + ”'“)MsgBox ”數(shù)據(jù)刪除成功“, 64, ”提示信息“
'刪除后刷新數(shù)據(jù)信息
Adodc1.RecordSource = ”select * from 貨物的出入庫信息 order by id“
Adodc1.Refresh
AddTitle
End If
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text5.Text = ”“
Text6.Text = ”“
End Sub
(4)點(diǎn)擊“修改”按鈕,修改當(dāng)前的記錄信息。Private Sub Command3_Click()'修改庫存信息
c = MsgBox(”確認(rèn)修改信息嗎“, 33, ”提示信息“)
If c = vbOK Then
'
On Error Resume Next
Set DB_AdoRs = Cnn.Execute(”UPDATE 貨物的出入庫信息 SET tb_title='“ + Text2 + ”',tb_style='“ + Text3 + ”',tb_nums='“ + Text4 + ”',tb_values='“ _
+ Text5 + ”',tb_mark='“ + Text6 + ”' where id='“ + Text1.Text + ”'“)
MsgBox ”數(shù)據(jù)修改成功“, 64, ”提示信息“
Adodc1.RecordSource = ”select * from 貨物的出入庫信息 order by id“
Adodc1.Refresh
AddTitle
End If End Sub(5)點(diǎn)擊“保存”按鈕,將保存文本框中輸入的貨物信息。Private Sub Command4_Click()If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Then
MsgBox ”保存的數(shù)據(jù)信息不能為空“, 48, ”提示信息“
Else
DB_AdoRs.Open ”select * from 貨物的出入庫信息 where tb_title='“ + Text2.Text + ”'“, Cnn, adOpenKeyset
If DB_AdoRs.RecordCount > 0 Then
'判斷要保存的信息是否已經(jīng)存在
MsgBox ”該貨物信息信息已經(jīng)存在“, 48, ”提示信息“
DB_AdoRs.Close
Else
DB_AdoRs.Close
c = MsgBox(”確認(rèn)保存信息嗎“, 33, ”提示信息“)
If c = vbOK Then
'如果選擇的是“確定”按鈕則保存信息
Set DB_AdoRs = Cnn.Execute(”insert into 貨物的出入庫信息 values(“ & Text1 & ”,'“ & Text2 & ”','“ & Text3 & ”',“ & Text4 & ”,“ _
& Text5 & ”,'“ & Date & ”','“ & Text6 & ”')“)
MsgBox ”信息保存成功“, 64, ”提示信息“
Else
End If
'保存數(shù)據(jù)后刷新數(shù)據(jù)信息
Adodc1.RecordSource = ”select * from 貨物的出入庫信息 order by id“
Adodc1.Refresh
AddTitle
End If
End If End Sub(6)點(diǎn)擊退出,銷毀當(dāng)前窗口。Private Sub Command6_Click()
Unload Me End Sub
(7)單擊DataGrid1中的相應(yīng)記錄,會在窗體左側(cè)的各個(gè)編輯框中顯示相應(yīng)的內(nèi)容。Private Sub DataGrid1_Click()'On Error Resume Next
If Adodc1.Recordset.RecordCount > 0 Then
Text1.Text = Adodc1.Recordset.Fields(0)
Text2.Text = Adodc1.Recordset.Fields(1)
Text3.Text = Adodc1.Recordset.Fields(2)
Text4.Text = Adodc1.Recordset.Fields(3)
Text5.Text = Adodc1.Recordset.Fields(4)
Text6.Text = Adodc1.Recordset.Fields(6)
End If End Sub
窗體的運(yùn)行界面如下圖所示:
3.6 商品銷售模塊的設(shè)計(jì)與實(shí)現(xiàn)
在“商品銷售管理”窗口中的“銷售商品”下拉列表中選擇要銷售的商品之后,該商品的基本信息將顯示在窗體中相應(yīng)的文本框中,在輸入銷售數(shù)量和實(shí)收金額后,單擊“確認(rèn)銷售”按鈕完成銷售商品的操作。
3.6.1 窗體界面設(shè)計(jì)
(1)在工程中添加一個(gè)窗體,命名為Frm_Sale,將Caption屬性設(shè)置為“商品銷售管理”。(2)在窗體上添加相應(yīng)的控件,如下圖所示。
(3)通過“工程”菜單下的“部件”命令將DataGrid數(shù)據(jù)表格控件添加到工具箱中,然后在窗體上添加1個(gè)數(shù)據(jù)表格控件DataGrid1。
(4)在窗體上添加2個(gè)ADO控件Adodc1和Adodc2,同時(shí)將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc2。
3.6.2 程序代碼實(shí)現(xiàn)
(1)窗體啟動時(shí),將商品庫存中的貨物名稱信息添加到下拉列表中,然后再將商品銷售的數(shù)據(jù)信息顯示在DataGrid1控件中。Private Sub Form_Load()Adodc2.ConnectionString = MyStrs
Adodc2.RecordSource = ”select * from 商品的銷售信息 order by id“
Adodc2.Refresh
AddTitle
'使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫信息“
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Combo1.Clear
'在添加數(shù)據(jù)時(shí),首先清空控件中的內(nèi)容
Do While Adodc1.Recordset.EOF = False
'將貨物出入庫信息添加到下拉列表框控件當(dāng)中
Combo1.AddItem(Adodc1.Recordset.Fields(”tb_title“))
Adodc1.Recordset.MoveNext
Loop
End If End Sub Private Sub AddTitle()
DataGrid1.Columns.Item(0).Caption = ”編號“
DataGrid1.Columns.Item(1).Caption = ”名稱“
DataGrid1.Columns.Item(2).Caption = ”銷售數(shù)量“
DataGrid1.Columns.Item(3).Caption = ”銷售總價(jià)“
DataGrid1.Columns.Item(4).Caption = ”銷售日期“ End Sub(2)選擇下拉列表中的商品之后,該商品的詳細(xì)信息將顯示在窗體中相對應(yīng)的文本框中。'商品詳細(xì)信息
Private Sub Combo1_Click()Adodc1.RecordSource = ”select * from 貨物的出入庫信息 where tb_title ='“ & Combo1.Text & ”'“ Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Text1.Text = Adodc1.Recordset.Fields(”id“)
Text2.Text = Adodc1.Recordset.Fields(”tb_style“)
Text3.Text = Adodc1.Recordset.Fields(”tb_nums“)
Text4.Text = Adodc1.Recordset.Fields(”tb_values“)
Text5.Text = Adodc1.Recordset.Fields(”tb_mark“)
End If
'清空文本框中的內(nèi)容
Text6.Text = ”“
Text7.Text = ”“
Text8.Text = ”“
Text9.Text = ”“
End Sub
(3)單擊“確認(rèn)銷售”按鈕,將完成銷售商品的操作。
(4)當(dāng)用戶輸入銷售數(shù)量后并將輸入焦點(diǎn)移開后,需要實(shí)時(shí)更新商品詳細(xì)信息中的數(shù)量信息,即在原有數(shù)量的基礎(chǔ)上減去用戶輸入的銷售數(shù)量。(3)和(4)的代碼:
Private Sub Command1_Click()
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫信息 where tb_title ='“ & Combo1.Text & ”'“
Adodc1.Refresh
Dim a As Integer
Dim b As Integer
a = Val(Text7.Text)
b = Val(Text4.Text * Text6.Text)
If Text6.Text = ”“ Or Text7.Text = ”“ Then
MsgBox ”請補(bǔ)全信息!“, 64, ”提示信息“
Else
If a < b Then
MsgBox ”信息輸入有誤,請重新輸入!“, 64, ”提示信息“
Else
Text8.Text = Text4.Text * Text6.Text
Text9.Text = Text7.TextText6.Text
Adodc1.Recordset.Update
Set DB_AdoRs = Cnn.Execute(”insert into 商品的銷售信息 values('“ & Adodc2.Recordset.RecordCount + 1 & ”','“ & Combo1.Text & ”','“ & Text6 & ”',“ & Text8 & ”,'“ & Date & ”')“)
Set DB_AdoRs = Cnn.Execute(”UPDATE 貨物的出入庫信息 SET tb_nums = '“ & Text3 & ”' where id= '“ & Text1 & ”'“)
MsgBox ”銷售成功!“, 64, ”提示信息“
Adodc2.RecordSource = ”select * from 商品的銷售信息 “
Adodc2.Refresh
AddTitle
End If
End If End Sub
窗體的運(yùn)行結(jié)果如下圖所示:
3.7 銷售統(tǒng)計(jì)模塊的設(shè)計(jì)與實(shí)現(xiàn)
該模塊主要實(shí)現(xiàn)統(tǒng)計(jì)商品銷售信息的功能。選擇商品的銷售日期和銷售商品的名稱之后,在下面的DataGrid數(shù)據(jù)表格控件中就會顯示查詢的數(shù)據(jù)結(jié)果信息,同時(shí)統(tǒng)計(jì)出銷售商品的總數(shù)量和總價(jià)格。
3.7.1 窗體界面設(shè)計(jì)
(1)添加一個(gè)窗體,命名為Frm_Stat,將窗體的Caption屬性設(shè)置為“銷售統(tǒng)計(jì)”。(2)在窗體上添加控件情況如后圖。
(3)在窗體上添加一個(gè)數(shù)據(jù)表格控件DataGrid1。
(4)在窗體上添加2個(gè)ADO控件Adodc1和Adodc2,同時(shí)將DataGrid1的數(shù)據(jù)源屬性DataSource設(shè)置為Adodc2。
銷售統(tǒng)計(jì)窗體的設(shè)計(jì)界面如下圖所示。
3.7.2 程序代碼實(shí)現(xiàn)
(1)在啟動窗體時(shí),將貨物的名稱信息添加到下拉列表控件中,然后再將商品銷售的數(shù)據(jù)信息顯示在表格控件中。
(2)在日期時(shí)間控件DTPicker1的Change事件下添加如下的程序代碼,實(shí)現(xiàn)根據(jù)選擇條件統(tǒng)計(jì)商品銷售信息的功能。
(3)在日期Combo1控件的Click事件下添加如下的程序代碼,實(shí)現(xiàn)根據(jù)選擇條件統(tǒng)計(jì)商品銷售信息的功能。
Private Sub Combo1_Click()Adodc2.RecordSource = ”select * from 商品的銷售信息 where tb_title ='“ & Combo1.Text & ”' and tb_date ='“ & DTPicker1.Value & ”' “ Adodc2.Refresh AddTitle Dim n, m As Integer n = 0 m = 0 Do While Not Adodc2.Recordset.EOF n = n + Adodc2.Recordset.Fields(2).Value m = m + Adodc2.Recordset.Fields(3).Value Adodc2.Recordset.MoveNext Loop Text1.Text = n
Text2.Text = m End Sub
Private Sub DTPicker1_Change()Adodc2.RecordSource = ”select * from 商品的銷售信息 where tb_title ='“ & Combo1.Text & ”' and tb_date ='“ & DTPicker1.Value & ”' “ Adodc2.Refresh AddTitle Dim n, m As Integer n = 0 m = 0 Do While Not Adodc2.Recordset.EOF n = n + Adodc2.Recordset.Fields(2).Value m = m + Adodc2.Recordset.Fields(3).Value Adodc2.Recordset.MoveNext Loop Text1.Text = n Text2.Text = m End Sub
Private Sub Form_Load()
Adodc2.ConnectionString = MyStrs
Adodc2.RecordSource = ”select * from 商品的銷售信息 where tb_title ='“ & Combo1.Text & ”' and tb_date ='“ & DTPicker1.Value & ”' order by id“
Adodc2.Refresh
AddTitle
'使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 貨物的出入庫信息 “
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Combo1.Clear
'在添加數(shù)據(jù)時(shí),首先清空控件中的內(nèi)容
Do While Adodc1.Recordset.EOF = False
'將商品銷售信息添加到下拉列表框控件當(dāng)中
Combo1.AddItem(Adodc1.Recordset.Fields(”tb_title“))
Adodc1.Recordset.MoveNext
Loop
End If End Sub
Private Sub AddTitle()
DataGrid1.Columns.Item(0).Caption = ”編號“
DataGrid1.Columns.Item(1).Caption = ”名稱“
DataGrid1.Columns.Item(2).Caption = ”銷售數(shù)量“
DataGrid1.Columns.Item(3).Caption = ”銷售總價(jià)“
DataGrid1.Columns.Item(4).Caption = ”銷售日期“ End Sub
窗體的運(yùn)行結(jié)果如下:
3.8 修改密碼模塊的設(shè)計(jì)與實(shí)現(xiàn)
3.8.1 窗體界面設(shè)計(jì)
(1)添加一個(gè)窗體,命名為Frm_Pas,將Caption屬性設(shè)置為“密碼修改”。(2)在窗體上加入一個(gè)ADO控件Adodc1。(3)設(shè)計(jì)窗體的界面如下圖。
3.8.2 程序代碼實(shí)現(xiàn)
(1)載入窗口時(shí)連接操作員信息數(shù)據(jù)表 Private Sub Form_Load()'使用代碼連接數(shù)據(jù)庫與數(shù)據(jù)表
Adodc1.ConnectionString = MyStrs
Adodc1.RecordSource = ”select * from 系統(tǒng)用戶的信息“
Adodc1.Refresh End Sub
(2)當(dāng)點(diǎn)擊“確定”按鈕時(shí),首先判斷用戶輸入的用戶名和原密碼信息是否正確,如果正確并且兩次輸入的新密碼一致,就將用戶密碼修改為新密碼。Private Sub Command1_Click()Adodc1.RecordSource = ”select * from 系統(tǒng)用戶的信息 where tb_name ='“ & Text1.Text & ”'“ Adodc1.Refresh
If Text1.Text = ”“ Then
MsgBox ”請輸入用戶名!“, 48, ”提示信息“
Text1.SetFocus
Else
If Text2.Text = ”“ Then
MsgBox ”請輸入舊密碼!“, 48, ”提示信息“
Text2.SetFocus
Else
If Text3.Text = ”“ Then
MsgBox ”請輸入新密碼!“, 48, ”提示信息“
Text3.SetFocus
Else
If Text4.Text = ”“ Then
MsgBox ”請確認(rèn)新密碼!“, 48, ”提示信息“
Text4.SetFocus
Else
If Adodc1.Recordset.RecordCount > 0 Then
MPassword = Adodc1.Recordset.Fields(”tb_pas“)
If Text2.Text = MPassword And Text3.Text = Text4.Text Then
'判斷數(shù)據(jù)的密碼是否正確
Set DB_AdoRs = Cnn.Execute(”UPDATE 系統(tǒng)用戶的信息 SET tb_pas='“ + Text3.Text + ”' where tb_name='“ + Text1.Text + ”'“)
MsgBox ”密碼已修改!“, 48, ”提示信息“
Unload Me
Else
If Text2.Text <> MPassword Then
MsgBox ”密碼不正確,請您確認(rèn)后重新輸入!“, 64, ”提示信息“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”“
Text2.SetFocus
Else
MsgBox ”兩次輸入的新密碼不一致,請重新輸入!“, 64, ”提示信息“
Text3.Text = ”“
Text4.Text = ”“
Text3.SetFocus
End If
End If
Else
If Text1.Text <> ”“ Then
MsgBox ”對不起 沒有此用戶的信息!“, 64, ”提示信息“
Text1.Text = ”“
Text2.Text = ”“
Text3.Text = ”“
Text4.Text = ”"
Text1.SetFocus
End If
End If
End If
End If
End If
End If End Sub
(3)當(dāng)用戶點(diǎn)擊“取消”時(shí),關(guān)閉密碼修改對話框。Private Sub Command2_Click()
End End Sub
窗體的運(yùn)行結(jié)果如下:
4.實(shí)驗(yàn)總結(jié)
通過這兩星期的學(xué)習(xí),加深了我對數(shù)據(jù)庫的認(rèn)識,懂得了如何去應(yīng)用數(shù)據(jù)庫,也對Visual Basic有了一定的了解了,雖然設(shè)計(jì)的過程中并不是那么的順利,但經(jīng)過查找相關(guān)的資料后,問題一步一步地解決了,相信對我以后的學(xué)習(xí)有一定的幫助。
第二篇:庫存管理系統(tǒng)課程設(shè)計(jì)
庫存管理系統(tǒng)課程設(shè)計(jì)
一、需求分析...................................................................................................................................2 1.1 編寫目的:.......................................................................................................................2 1.2 項(xiàng)目背景:.......................................................................................................................2 1.3系統(tǒng)使用對象:................................................................................................................3 1.4 功能需求:.......................................................................................................................3 1.4.1 業(yè)務(wù)流程圖:.......................................................................................................3 1.4.2 功能模塊圖:.......................................................................................................4 1.4.3 功能介紹:...........................................................................................................4 1.4.4問題域描述:........................................................................................................5 1.5 性能要求:.......................................................................................................................5 1.6 運(yùn)行環(huán)境:.......................................................................................................................6
二、系統(tǒng)詳細(xì)設(shè)計(jì)...........................................................................................................................6 2.1系統(tǒng)總體設(shè)計(jì)....................................................................................................................6 2.1.1 運(yùn)行環(huán)境...............................................................................................................6 2.1.2 系統(tǒng)流程...............................................................................................................6 2.1.3 系統(tǒng)結(jié)構(gòu)...............................................................................................................7 2.2系統(tǒng)接口的概要設(shè)計(jì)........................................................................................................8 2.2.1 用戶接口...............................................................................................................8 2.3 數(shù)據(jù)庫概要設(shè)計(jì)...............................................................................................................9 2.3.1 物理結(jié)構(gòu)設(shè)計(jì).......................................................................................................9
三、系統(tǒng)實(shí)現(xiàn).................................................................................................................................10 3.1 系統(tǒng)開發(fā)環(huán)境.................................................................................................................10 3.2 系統(tǒng)實(shí)現(xiàn).........................................................................................................................11 3.2.1 客戶端系統(tǒng)實(shí)現(xiàn).................................................................................................11
一、需求分析
1.1 編寫目的:
庫存管理工作如由人工完成,主要依靠個(gè)人經(jīng)驗(yàn)和厚重的資料簿,查詢工作繁瑣而且質(zhì)量不高,容易出錯(cuò)。如果利用計(jì)算機(jī)的高速計(jì)算能力和廣泛的普及應(yīng)用,則能利用判斷條件,更快地找出所要查詢的庫存產(chǎn)品。庫存管理系統(tǒng)是一套對貨品入庫、出庫、庫存進(jìn)行全面管理的系統(tǒng)。
1.2 項(xiàng)目背景:
由于市場競爭的需要,如何吸引和留住人才,激發(fā)員工的創(chuàng)造行、工作責(zé)任感和工作熱情已經(jīng)成為關(guān)系企業(yè)興衰的重要因素,人才已成為企業(yè)最重要的資產(chǎn)之一。“公正、公平、合理”的企業(yè)管理理念和企業(yè)管理水平的提高,是社會對庫存管理系統(tǒng)有了更高的需求;同時(shí)由于個(gè)人電腦的普及,數(shù)據(jù)庫技術(shù)、客戶/服務(wù)器技術(shù),特別是Internet/Intranet技術(shù)的發(fā)展,使的三代庫存管理系統(tǒng)的出現(xiàn)才成為必然。庫存管理系統(tǒng)的特點(diǎn)是從物品管理的角度出發(fā),用集中的數(shù)據(jù)庫將幾乎所有與物品相關(guān)的數(shù)據(jù)統(tǒng)一管理起來,形成了集成的信息源。有好的用戶界面,強(qiáng)有力的報(bào)表生成工具、分析工具和信息的共享使得物品管理人員得以擺脫繁重的日常工作,集中精力從戰(zhàn)略的角度來考慮企業(yè)物品規(guī)劃和政策。
企業(yè)的庫存物資管理往往是很復(fù)雜、很繁瑣的。由于所掌握的物資種類眾多,訂貨、管理、發(fā)放的渠道各有差異,各個(gè)企業(yè)之間的管理體制不盡相同,各類統(tǒng)計(jì)報(bào)表繁多,因此倉庫的庫存管理必須編制一套庫存管理信息系統(tǒng),實(shí)現(xiàn)計(jì)算機(jī)化操作,而且必須根據(jù)企業(yè)的具體情況制定相應(yīng)的方案。
1.3系統(tǒng)使用對象:
本軟件提供了完備的銷售業(yè)務(wù)管理功能,包括銷售管理(銷售訂單、銷售出貨、銷售退貨、收款登記)、基本信息(公司基本資料、客戶資料、貨品資料、員工檔案、其他基礎(chǔ)設(shè)置)、單據(jù)查詢(訂貨單查詢、收貨單查詢、付款單查詢)、系統(tǒng)維護(hù)(操作權(quán)限、數(shù)據(jù)備份及恢復(fù)、數(shù)據(jù)壓縮、數(shù)據(jù)清理)等功能。
1.4 功能需求:
1.4.1 業(yè)務(wù)流程圖:
1.4.2 功能模塊圖:
1.4.3 功能介紹: 庫存管理:包括貨品信息管理、貨品庫存管理、短線貨品管理、超儲貨品管理。
入庫管理:包括入庫登記管理、貨品入庫期間統(tǒng)計(jì)、供貨單位期間供貨統(tǒng)計(jì)和供貨單位期間供貨金額統(tǒng)計(jì)。
出庫管理:包括出庫登記管理、貨品期間出庫統(tǒng)計(jì)、收貨單位期間收貨統(tǒng)計(jì)和收貨單位期間收貨金額統(tǒng)計(jì)。
盤存管理:包括盤存數(shù)據(jù)錄入和盤存表。綜合管理:包括貨品出入庫期間匯總等。
附項(xiàng)分類:包括經(jīng)辦人員管理、供貨單位管理、倉庫信息管理及數(shù)據(jù)處理記錄。
歷史數(shù)據(jù)管理:包括歷史庫存管理、歷史入庫管理和歷史出庫管理等。1.4.4問題域描述:
貨物是否能被管理員找到,貨物必要有唯一的貨號;倉庫對應(yīng)唯一管理員,管理員必要有唯一工號,性別,姓名等屬性;每個(gè)入庫貨物對應(yīng)一張入庫單,入庫單號碼必須與貨號唯一對應(yīng);每個(gè)出庫貨物對應(yīng)一張出庫單,出庫單號碼必須與貨號唯一對應(yīng);管理人員存放貨物根據(jù)存放規(guī)則在倉庫內(nèi)存放貨物;管理人員根據(jù)提貨規(guī)則從倉庫內(nèi)提取貨物。
1.5 性能要求:
全局特征:
系統(tǒng)可用性是:全天候可用、可靠性:除了不可計(jì)錯(cuò)誤,一般不會崩潰。安全性和保密性:只有專業(yè)的工作人員才能運(yùn)行,可以設(shè)置權(quán)限。
1.6 運(yùn)行環(huán)境:
硬件環(huán)境:PentiumⅡ 或同檔次以上微機(jī); 32MB以上內(nèi)存或更高;4.2G以上硬盤;1.44M
光驅(qū);24速以上光驅(qū);
針打或激光打印機(jī)一臺
軟件環(huán)境:中文 WINDOWS95 /
二、系統(tǒng)詳細(xì)設(shè)計(jì)
2.1系統(tǒng)總體設(shè)計(jì)
2.1.1 運(yùn)行環(huán)境 操作系統(tǒng):Windows All 安裝MySQL Tomcat MyEclipse 2.1.2 系統(tǒng)流程 本課題的系統(tǒng)流程圖如下
/WE/ 2000操作系統(tǒng)。
2.1.3 系統(tǒng)結(jié)構(gòu)
本課題的功能模塊設(shè)計(jì)圖如下
2.2系統(tǒng)接口的概要設(shè)計(jì)
2.2.1 用戶接口 首頁(用戶登錄界面)
用戶操作界面(如圖)頭部和其他部位的內(nèi)容一樣
左側(cè)部分為當(dāng)用戶登錄成功后將顯示用戶操作的功能菜單 右側(cè)部分則根據(jù)用戶選擇的操作顯示相應(yīng)內(nèi)容
2.3 數(shù)據(jù)庫概要設(shè)計(jì)
2.3.1 物理結(jié)構(gòu)設(shè)計(jì)
本課題目前為數(shù)據(jù)庫建立了9 個(gè)表 Category:id,name,description;
Goods:id,name,description,inprice,outprice,category_id,supplier;Instock:id,quantity,intime,price,description,goods_id,uear_id;Outstock:id,quantity,outtime,description,price,user_id,goods_id;Privilege:id,name,description Stock:goods_id,quantity,outprice,inprice Supplier:id,name,linkman,cellphone,description User:id,username,password User_privilege:user_id,privilege_id
三、系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)開發(fā)環(huán)境
系統(tǒng):Microsoft Windows 7 編程環(huán)境:MyEclipse 開發(fā)語言:Java 數(shù)據(jù)庫:MySQL
3.2 系統(tǒng)實(shí)現(xiàn)
3.2.1 客戶端系統(tǒng)實(shí)現(xiàn) 登錄界面(如下圖)
庫存管理成果信息頁面(如圖)
用戶管理
權(quán)限管理
供應(yīng)商管理
類別管理
商品管理
入庫管理
庫存管理
出庫管理
第三篇:數(shù)據(jù)庫課程設(shè)計(jì) 圖書管理系統(tǒng)(精選)
課 程 設(shè) 計(jì)
軟件工程與數(shù)據(jù)庫 課程設(shè)計(jì) 任務(wù)書
學(xué)院名稱:
數(shù)學(xué)與計(jì)算機(jī)學(xué)院
課程代碼:_6014419_ 專
業(yè):
年
級:
一、設(shè)計(jì)題目
圖書管理系統(tǒng)
二、主要內(nèi)容
一個(gè)簡單的圖書管理系統(tǒng)包括圖書館內(nèi)書籍的信息、學(xué)校在校學(xué)生的信息以及學(xué)生的借閱信息。此系統(tǒng)功能分為面向?qū)W生和面向管理員兩部分,其中學(xué)生可以進(jìn)行借閱、續(xù)借、歸還和查詢書籍等操作,管理員可以完成書籍和學(xué)生的增加,刪除和修改以及對學(xué)生,借閱、續(xù)借、歸還的確認(rèn)。如:
圖書室有各種圖書一萬多冊。
每種圖書都有書名、書號(ISBN)、一名或多名作者(譯者)、出版社、定價(jià)和內(nèi)容簡介。
借書證記錄有借閱者的姓名、所在單位、職業(yè)等。
憑借書證借書,每次最多能借8本書。借書期限最長為30天。實(shí)現(xiàn)新進(jìn)圖書的數(shù)據(jù)錄入。
實(shí)現(xiàn)對所有購進(jìn)圖書的分類查詢和分類統(tǒng)計(jì)。能夠按書名、作者等分類查詢現(xiàn)有圖書的數(shù)量。
記錄借閱者的個(gè)人資料和所借圖書的書名、書號數(shù)據(jù)等。
三、具體要求
1、完成系統(tǒng)的需求分析
通過需求分析確定系統(tǒng)需要處理的數(shù)據(jù)的需求,要求使用數(shù)據(jù)庫的輔助設(shè)計(jì)工具(PowerDesigner等),建立業(yè)務(wù)處理模型。
課 程 設(shè) 計(jì)
2、完成系統(tǒng)概念結(jié)構(gòu)設(shè)計(jì) 概念數(shù)據(jù)模型(CDM)用于完成數(shù)據(jù)庫的設(shè)計(jì),與人和數(shù)據(jù)庫平臺和具體數(shù)據(jù)存儲結(jié)構(gòu)和工具無關(guān)。首先選擇局部應(yīng)用畫出分E-R圖,最終形成系統(tǒng)的E-R圖
3、完成系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)
按照E-R圖轉(zhuǎn)換成關(guān)系模式的規(guī)則,將CDM轉(zhuǎn)換成邏輯數(shù)據(jù)模型,并為每個(gè)關(guān)系模式設(shè)計(jì)主鍵、外鍵。分析關(guān)系模式中的依賴關(guān)系,對關(guān)系模式規(guī)范化處理
4、完成系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì)
為每個(gè)關(guān)系分配存儲長度,建立數(shù)據(jù)庫的索引和視圖,定義關(guān)系中的主碼和外碼,寫出關(guān)系創(chuàng)建和查詢的SQL語句。
5、編碼 選擇你自己熟悉的開發(fā)工具完成一個(gè)DBS系統(tǒng)的編碼工作。源代碼格式規(guī)范,注釋不少于三分之一
四、主要技術(shù)路線提示
1.仔細(xì)閱讀設(shè)計(jì)指導(dǎo)書內(nèi)容,認(rèn)真掌握任務(wù)要求?2.需求分析? 3.概念結(jié)構(gòu)設(shè)計(jì)? 4.邏輯結(jié)構(gòu)設(shè)計(jì)?5.物理結(jié)構(gòu)設(shè)計(jì)?6.編碼.2.后臺推薦采用SQL server或Oracle;前臺開發(fā)環(huán)境不限制。可采用ADO,ODBC,OLE DB或JDBC連接數(shù)據(jù)庫,并調(diào)用系統(tǒng)存儲過程、自定義存儲過程、函數(shù)等。
五、進(jìn)度安排
第1周: 數(shù)據(jù)庫系統(tǒng)概念模型、數(shù)據(jù)模型設(shè)計(jì),創(chuàng)建數(shù)據(jù)庫以及相關(guān)對象; 第2周: 前臺程序開發(fā),撰寫報(bào)告,接受檢查。
六、完成后應(yīng)上交的材料
1. 源程序一份(包含數(shù)據(jù)庫)
2. 課程設(shè)計(jì)報(bào)告一份
七、推薦參考資料
1.王珊.數(shù)據(jù)庫系統(tǒng)概論(第四版).高等教育出版社 2.閃四清.數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程.清華大學(xué)出版社
課 程 設(shè) 計(jì)
3.周龍?bào)J.數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)技術(shù).中國地質(zhì)大學(xué)出版社 4.張海藩.軟件工程概論.清華大學(xué)出版社 5.陳明 編著.實(shí)用軟件工程基礎(chǔ).清華大學(xué)出版社
6.成先海.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用-SQL SERVER2000.機(jī)械工業(yè)出版社出版
指導(dǎo)教師 簽名日期 年 月 日 系 主 任 審核日期 年 月 日
第四篇:數(shù)據(jù)庫課程設(shè)計(jì)學(xué)籍管理系統(tǒng)
學(xué)籍管理系統(tǒng)
本次數(shù)據(jù)庫課程設(shè)計(jì)是以Access數(shù)據(jù)庫作為后臺以VB作為前臺的應(yīng)用型設(shè)計(jì)課程。
綜合我們所學(xué)的兩大課程創(chuàng)建應(yīng)用型的數(shù)據(jù)庫系統(tǒng),大大的提高了我們學(xué)生的動手能力,作到了理論與實(shí)踐相結(jié)合。一.題目說明:
學(xué)生學(xué)藉管理系統(tǒng)是典型的學(xué)藉管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。
本系統(tǒng)主要完成對學(xué)生情況和學(xué)生成績的管理,包括數(shù)據(jù)庫中表的添加、刪除等。系統(tǒng)還可以完成對各類信息的瀏覽、添加、刪除、等功能。
系統(tǒng)的核心是數(shù)據(jù)庫中各個(gè)表聯(lián)系,每一個(gè)表的修改都將聯(lián)動的影響其它的表,當(dāng)完成對數(shù)據(jù)的操作時(shí)系統(tǒng)會自動地完成數(shù)據(jù)庫的修改。查詢功能也是系統(tǒng)的核心之一,在系統(tǒng)中即有單條件查詢和多條件查詢,也有精確查詢和模糊查詢,系統(tǒng)不僅有靜態(tài)的條件查詢,也有動態(tài)生成的條件查詢,其目的都是為了方便用戶使用。系統(tǒng)有完整的用戶添加、刪除和密碼修改功能,并具備報(bào)表打印功能。關(guān)鍵字:窗體、數(shù)據(jù)庫、vb6.0、access2000。
學(xué)生學(xué)籍管理系統(tǒng)被廣泛應(yīng)用于各類學(xué)校的學(xué)生學(xué)籍管理工作中,要求其具有實(shí)用性強(qiáng)、使用方便、效率高和安全可靠等特點(diǎn)。本管理系統(tǒng)正是圍繞以上幾個(gè)方面進(jìn)行開發(fā)的,在開發(fā)過程中充分考慮到本系統(tǒng)的應(yīng)用特點(diǎn),并進(jìn)行了大量的檢驗(yàn),證明其的確達(dá)到了設(shè)計(jì)的要求,是一個(gè)已具備了實(shí)際應(yīng)用能力的軟件。本文主要論述學(xué)生學(xué)籍管理系統(tǒng)的開發(fā)過程,在涉及到VB及Access中的部分知識以舉例的方式進(jìn)行講解 二.總體設(shè)計(jì):
我的總體設(shè)計(jì)如下:
(1).利用Access建立數(shù)據(jù)庫,并在該數(shù)據(jù)庫下創(chuàng)建五張表格,分別是學(xué)生表、課程表、選課表、學(xué)生選課表以及口令表。
(2)利用VB來建立界面并對它進(jìn)行設(shè)計(jì)和修改,大體框架如下: FORM1 用于首界面
FORM2 用于登陸此系統(tǒng)的登錄界面
FORM3 是主窗體,在這上面建立相應(yīng)的菜單 如:文件——退出、添加用戶(FORM4)數(shù)據(jù)信息——管理使用(FORM5)
基本操作——學(xué)生操作、選課操作、課程操作(FORM6、FORM7、FORM8)(3)對以上的界面進(jìn)行設(shè)計(jì)以及對所要操作的部件進(jìn)行編程。
三.常用控件的說明: 所有的Windows應(yīng)用程序窗口或?qū)υ捒颍际怯芍T如文本框、列表框、命令按扭、滾動條、命令菜單等組成的。VB通過控件工具箱提供了它們與用戶進(jìn)行交
互的可視化部件,即控件。程序開發(fā)人員只需要通過簡單的操作,在窗體上安排所需要的控件,完成應(yīng)用程序的用戶界面設(shè)計(jì)即可。序號
名稱
功能 Label標(biāo)簽
用于說明 Textbox文本框
用于文本輸入或顯示 3 Frame框架
用于組合控件 Commandbutton命令按扭
單擊執(zhí)行命令 5 Timer計(jì)時(shí)期
用于定時(shí) Data數(shù)據(jù)控件
用于訪問數(shù)據(jù)庫
三.詳細(xì)說明:
1.數(shù)據(jù)庫的建立與設(shè)計(jì):
數(shù)據(jù)庫是有結(jié)構(gòu)的數(shù)據(jù)集合,它與一般的數(shù)據(jù)文件不同,(其中的數(shù)據(jù)是無結(jié)構(gòu)的)是一串文字或數(shù)字流。數(shù)據(jù)庫中的數(shù)據(jù)可以是文字、圖象、聲音等。
Access數(shù)據(jù)庫由六種對象組成,它們是表、查詢、窗體、報(bào)表、宏和模塊。
(1).表(Table)——表是數(shù)據(jù)庫的基本對象,是創(chuàng)建其他5種對象的基礎(chǔ)。表由記錄組成,記錄由字段組成,表用來存貯數(shù)據(jù)庫的數(shù)據(jù),故又稱數(shù)據(jù)表。
(2).查詢(Query)——查詢可以按索引快速查找到需要的記錄,按要求篩選記錄并能連接若干個(gè)表的字段組成新表。
(3).窗體(Form)——窗體提供了一種方便的瀏覽、輸入及更改數(shù)據(jù)的窗口。還可以創(chuàng)建子窗體顯示相關(guān)聯(lián)的表的內(nèi)容。窗體也稱表單。
(4).報(bào)表(Report)——報(bào)表的功能是將數(shù)據(jù)庫中的數(shù)據(jù)分類匯總,然后打印出來,以便分析。
(5).宏(Macro)——宏相當(dāng)于DOS中的批處理,用來自動執(zhí)行一系列操作。Access列出了一些常用的操作供用戶選擇,使用起來十分方便。
(6).模塊(Module)——模塊的功能與宏類似,但它定義的操作比宏更精細(xì)和復(fù)雜,用戶可以根據(jù)自己的需要編寫程序。模塊使用Visual Basic編程。
我們利用Access來建立數(shù)據(jù)庫,我們的庫中有五張表格,其分別是學(xué)生表、課程表、選課表、學(xué)生選課表以及口令表。
我們就以學(xué)生表為例做一個(gè)簡單的說明:
我們使用設(shè)計(jì)器來創(chuàng)建表的,我的這張表有七個(gè)字段,每個(gè)字段的名稱分別是:學(xué)號、班級、姓名、性別、出生年月、民族、地址、電話號碼,每個(gè)字段有七個(gè)數(shù)據(jù)。我并對其字段的屬性進(jìn)行了重新的修改,以做到不浪費(fèi)其空間。
我具體的實(shí)施步驟是:啟動數(shù)據(jù)庫管理器——建立數(shù)據(jù)庫——建立數(shù)據(jù)表結(jié)構(gòu)——輸入記錄。
最終產(chǎn)生了這樣的一個(gè)數(shù)據(jù)庫:(如下)
2.VB界面的建立設(shè)計(jì)以及程序的編寫說明:
VB 是在Windows操作平臺下,用于開發(fā)和創(chuàng)建具有圖形用戶界面的應(yīng)用程序的強(qiáng)有力工具之一。VB為開發(fā)Windows應(yīng)用程序不僅提供了全新的相對簡單的方式,而且也引進(jìn)了新的程序設(shè)計(jì)方法——面向?qū)ο蟮脑O(shè)計(jì)方法(00P)。從傳統(tǒng)的面向過程的程序設(shè)計(jì),轉(zhuǎn)移到更先進(jìn)的面向?qū)ο蟮某绦蛟O(shè)計(jì),無論是對老的程序員,還是初學(xué)者,都是一個(gè)挑戰(zhàn)。而學(xué)習(xí)VB,則是掌握這一新的程序設(shè)計(jì)方法的一條捷徑。
(1).界面的設(shè)計(jì)和程序的編寫:
設(shè)計(jì)一個(gè)像這樣的友好的界面,我考慮到它的顏色的配制,界面的大小,界面所載的內(nèi)容的多少等,在后臺我用定時(shí)器給其限定時(shí)間讓它在一定的時(shí)間后自動跳到下一個(gè)界面。
這個(gè)界面是系統(tǒng)的主界面,用戶可以在通過系統(tǒng)登錄后直接到我們的主界面上來進(jìn)行相應(yīng)的操作,我的主界面采用的是一張?zhí)K州市職業(yè)大學(xué)的圖片,在這個(gè)圖片的上面有三個(gè)菜單,分別是文件、數(shù)據(jù)信息和基本操作。在各自的下面還有與之相對應(yīng)的子菜單,文件下有退出和添加用戶,數(shù)據(jù)信息下有管理使用,基本操作下有學(xué)生操作、選課操作和課程操作。我利用FORMn.SHOW命令連接到相對應(yīng)的界面上。
我們的界面有好幾張我就對其中的一張進(jìn)行詳細(xì)的分析:
這是一張學(xué)生選課瀏覽表的界面,這也是對應(yīng)我的主界面菜單中的數(shù)據(jù)信息下的管理使用子菜單的一張界面,在這張界面中包含了8個(gè)LABEL標(biāo)簽控件、7個(gè) TEXTBOX文本框控件、6個(gè)COMMANDBUTTON命令按扭控件、1個(gè)FRAME框架控件和1個(gè)DATA部件。我利用DATA部件將界面與 ACCESS數(shù)據(jù)庫相連接,具體的操作是利用DATABASENAME與數(shù)據(jù)庫連接,在RECORDSOURCE中找到與之對應(yīng)的表,再用 DATASOURCE、DATAFIELD與個(gè)文本框內(nèi)容對應(yīng),從而實(shí)現(xiàn)界面與數(shù)據(jù)庫的連接。下面是程序的編寫過程:
顯示前一個(gè)數(shù)據(jù): COMMAND1:
Private Sub Command1_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒有記錄” Else If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst MsgBox “這是第一條記錄!” Else Data1.Recordset.MovePrevious If Data1.Recordset.BOF = True Then
Data1.Recordset.MoveFirst MsgBox “這是第一條記錄!” End If End If End If End Sub 顯示第一個(gè)數(shù)據(jù): COMMAND2:
Private Sub Command2_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒有記錄” Else Data1.Recordset.MoveFirst End If End Sub 顯示最后一個(gè)數(shù)據(jù): COMMAND4:
Private Sub Command4_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒有記錄” Else Data1.Recordset.MoveLast End If End Sub 顯示后一個(gè)數(shù)據(jù): COMMAND3:
Private Sub Command3_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒有記錄” Else If Data1.Recordset.EOF Then Data1.Recordset.MoveLast MsgBox “這是最后一條記錄!” Else Data1.Recordset.MoveNext If Data1.Recordset.EOF = True Then Data1.Recordset.MoveLast MsgBox “這是最后一條記錄!” End If End If End If End Sub 添加一個(gè)數(shù)據(jù):COMMAND6 Private Sub command6_Click()If Command6.Caption = “添加” Then
Command1.Enabled = 0 Command2.Enabled = 0 Command3.Enabled = 0 Command4.Enabled = 0 Command6.Caption = “確定” Command5.Caption = “放棄” If Data1.Recordset.RecordCount > 0 Then Data1.Recordset.MoveLast End If Data1.Recordset.AddNew Text1.SetFocus Else Command1.Enabled =-1 Command2.Enabled =-1 Command3.Enabled =-1 Command4.Enabled =-1 Command6.Caption = “添加” Command5.Caption = “刪除” Text2.Enabled = 0 Text5.Enabled = 0 Text3.Enabled = 0 Text4.Enabled = 0 Text6.Enabled = 0 Text7.Enabled = 0 Data1.Recordset.Update Command1.SetFocus End If End Sub 刪除一個(gè)記錄:COMMAND5 Private Sub Command5_Click()If Command5.Caption = “放棄” Then Command4.Enabled =-1 Command5.Enabled =-1 Command6.Enabled =-1 Command3.Enabled =-1 Command1.Caption = “添加” Command2.Caption = “刪除” Text2.Enabled = 0 Text5.Enabled = 0 Text6.Enabled = 0 Text7.Enabled = 0 Text1.Enabled = 0
Else If Data1.Recordset.RecordCount = 0 Then MsgBox “沒有記錄”, 32, “注意” Exit Sub Else str1 = MsgBox(“刪除該記錄嗎?”, 17, “刪除”)If str1 = 1 Then Data1.Recordset.Delete Data1.Refresh If Data1.Recordset.RecordCount = 0 Then MsgBox “記錄數(shù)為零” Data1.Recordset.AddNew End If End If End If End If End Sub
四、在此過程中遇到的問題以及解決方法: 在開始編寫程序的時(shí)候總是有一些出錯(cuò),在查找有關(guān)書籍和向老師詢問后得出了結(jié)果。在將界面與數(shù)據(jù)庫相連接的時(shí)候,不知道用哪種方法,在老師的幫助下我學(xué)會了兩種方法:1.DATA、2.ADODC。我最終使用DATA這種方法。
五、心得體會:
在這次的設(shè)計(jì)過程中,我學(xué)到的不僅是知識,我還認(rèn)識到許多事情。這次設(shè)計(jì)使我的編程水平提高了一大步,使我充分的認(rèn)識到合作的可貴。由于這次設(shè)計(jì)涉及到數(shù)據(jù)庫,我的學(xué)到了不少編程工具與數(shù)據(jù)庫連接的知識,對數(shù)據(jù)庫的操作有了進(jìn)一步的了解。這次設(shè)計(jì)對我的綜合能力是一次很好的鍛煉,但是我必須承認(rèn)自己的能力和知識還很膚淺。所以今后我的學(xué)習(xí)道路還是很漫長的。最后,在這里我要衷心的感謝我們的指導(dǎo)老師牛麗、程淵,謝謝她的悉心指導(dǎo)和熱心幫助。由于我水平有限,加之時(shí)間短暫,故學(xué)籍管理系統(tǒng)中還有許多不足之處,請老師批評指正,我會在以后的制作中不斷改進(jìn),不斷完善。
第五篇:酒店管理系統(tǒng) (數(shù)據(jù)庫課程設(shè)計(jì))
數(shù)據(jù)庫 酒店管理系統(tǒng) 課程設(shè)計(jì)(基于 SQL server 2000)
實(shí)現(xiàn)過程
1.1 通過查詢分析器實(shí)現(xiàn)建立數(shù)據(jù)庫、數(shù)據(jù)表
------------------------------創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表---(1)創(chuàng)建酒店管理系統(tǒng)數(shù)據(jù)庫
CREATE DATABASE 酒店管理系統(tǒng)(2)創(chuàng)建客房信息表
CREATE TABLE 客房
(客房編號 CHAR(8)PRIMARY KEY,客房類型 CHAR(8)NOT NULL,價(jià)格 SMALLMONEY NOT NULL,床位數(shù) INT NOT NULL,使用狀態(tài) CHAR(8)NOT NULL)
INSERT INTO 客房 VALUES('101','一',100,1,'在使用')INSERT INTO 客房 VALUES('102','二',200,2,'在使用')INSERT INTO 客房 VALUES('103','二',200,1,'在使用')INSERT INTO 客房 VALUES('104','三',300,2,'在使用')INSERT INTO 客房 VALUES('105','三',300,1,'未使用')
(3)創(chuàng)建客戶信息表
CREATE TABLE 客戶
(客戶編號 CHAR(8)PRIMARY KEY, 客戶名稱 CHAR(10)NOT NULL,身份證號 CHAR(18)NOT NULL,聯(lián)系地址 CHAR(25),聯(lián)系電話 CHAR(10))INSERT INTO 客戶 VALUES('1001','王一',12234,'江西','3245354')INSERT INTO 客戶 VALUES('1002','張三',34234,'江西','2442442')INSERT INTO 客戶 VALUES('1003','李四',56465,'江西','5654645')INSERT INTO 客戶 VALUES('1004','王錢',65435,'江西','5676577')INSERT INTO 客戶 VALUES('1005','孫志',11464,'江西','4234343')
(4)創(chuàng)建入住登記表
CREATE TABLE 入住登記
(客房編號 CHAR(8)FOREIGN KEY REFERENCES 客房(客房編號),客戶編號 CHAR(8)FOREIGN KEY REFERENCES 客戶(客戶編號),預(yù)定日期 DATETIME,預(yù)定數(shù)量 INT, PRIMARY KEY(客房編號,客戶編號))
INSERT INTO 入住登記 VALUES('101','1001',2010-10-10,1)INSERT INTO 入住登記 VALUES('102','1002',2010-12-10,1)INSERT INTO 入住登記 VALUES('103','1003',2010-12-26,1)INSERT INTO 入住登記 VALUES('104','1004',2010-12-9,1)--------創(chuàng)建查詢視圖---------1.2系統(tǒng)功能相應(yīng)的查詢視圖:
(1)客戶信息查詢視圖
CREATE VIEW 客戶信息查詢
AS SELECT * FROM 客戶
(2)客房信息查詢
CREATE VIEW 客房信息查詢
AS SELECT
* FROM 客房
(3)入住信息查詢
CREATE VIEW 入住登記信息查詢 AS SELECT
* FROM 入住登記
(4)入住信息查詢
CREATE VIEW 入住信息查詢
AS SELECT入住登記.客房編號,客戶名稱,入住登記.客戶編號,客房.客房類型,價(jià)格,使用狀態(tài)
FROM 客房,客戶,入住登記
WHERE 客房.客房編號=入住登記.客房編號 AND 入住登記.客戶編號=客戶.客戶編號
---------------建立索引-----------------------1.3建立索引及數(shù)據(jù)入庫
1.建立客房編號,價(jià)格,客戶編號,客戶名稱的索引 創(chuàng)建客房表索引:
CREATE UNIQUE INDEX UKF ON 客房(客房編號,價(jià)格)
創(chuàng)建客戶表索引:
CREATE UNIQUE INDEX UKH ON 客戶(客戶編號,客戶名稱)
創(chuàng)建入住表索引:
CREATE UNIQUE INDEX URZ ON 入住登記(客戶編號,客房編號)2.數(shù)據(jù)入庫
方法一 酒店管理系統(tǒng)包括客房信息表,客戶信息表,入住登記信息表。采用Excel中錄入數(shù)據(jù),然后使用SQL Server 2000數(shù)據(jù)導(dǎo)入、導(dǎo)出功能直接將數(shù)據(jù)導(dǎo)入到相應(yīng)的基本表。
方法二 在查詢分析器中插入相關(guān)數(shù)據(jù),用SQL語句插入。
----------創(chuàng)建存儲過程----------------------1.4建立存儲過程
1.4.1客房信息存儲過程
插入客房信息存儲過程:
CREATE PROCEDURE 插入客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS INSERT INTO 客房 VALUES(@KFB,@KFL,@JG,@CWS,@SYZT)
修改客房信息存儲過程:
CREATE PROCEDURE 修改客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS UPDATE 客房
SET 客房類型=@KFL,價(jià)格=@JG,床位數(shù)=@CWS,使用狀態(tài)=@SYZT WHERE 客房編號=@KFB 刪除客房信息存儲過程:
CREATE PROCEDURE 刪除客房信息(@KFB CHAR(8))AS DELETE FROM 客房 WHERE 客房編號=@KFB
1.4.2客戶信息存儲過程
插入客戶信息
CREATE PROCEDURE 插入客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS INSERT INTO 客戶 VALUES(@KHB,@KFM,@SFZ,@LXDZ,@LXDH)修改客戶信息
CREATE PROCEDURE 修改客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS UPDATE 客戶
SET 客戶名稱=@KFM,身份證號=@SFZ,聯(lián)系地址=@LXDZ,聯(lián)系電話=@LXDH WHERE 客戶編號=@KHB
刪除客戶信息
CREATE PROCEDURE 刪除客戶信息(@KHB CHAR(8))AS DELETE FROM 客戶
WHERE 客戶編號=@KHB
EXEC 刪除客戶信息 @KHB='10009'
3.4.3創(chuàng)建入住信息存儲過程 插入入住信息
CREATE PROCEDURE 插入入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS INSERT INTO 入住登記 VALUES(@KFB,@KHB,@YDRQ,@YDSL)
修改入住信息
CREATE PROCEDURE 修改入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS UPDATE 入住登記
SET 客房編號=@KFB,預(yù)定日期=@YDRQ ,預(yù)定數(shù)量=@YDSL WHERE 客戶編號=@KHB
刪除入住信息
CREATE PROCEDURE 刪除入住信息(@KHB CHAR(8))AS DELETE
FROM 入住登記
WHERE 客戶編號=@KHB
1.5查詢存儲過程的創(chuàng)建
客房編號查詢
CREATE PROCEDURE 客房編號查詢(@KFB CHAR(8), @KFL CHAR(8)OUTPUT, @JG SMALLMONEY OUTPUT, @CWS INT OUTPUT, @SYZT CHAR(8)OUTPUT)AS SELECT @KFL=客房類型,@JG=價(jià)格,@CWS=床位數(shù),@SYZT=使用狀態(tài) FROM 客房
WHERE 客房編號=@KFB
客戶編號查詢
CREATE PROCEDURE 客戶編號查詢(@KHB CHAR(8), @KFM CHAR(10)OUTPUT , @SFZ CHAR(18)OUTPUT, @LXDZ CHAR(25)OUTPUT, @LXDH CHAR(10)OUTPUT)AS SELECT @KFM=客戶名稱,@SFZ=身份證號,@LXDZ=聯(lián)系地址,@LXDH=聯(lián)系電話 FROM 客戶
WHERE 客戶編號=@KHB
入住客戶編號查詢
CREATE PROCEDURE 入住客戶編號查詢(@KFB CHAR(8)OUTPUT, @KHB CHAR(8), @YDRQ DATETIME OUTPUT, @YDSL INT OUTPUT)AS SELECT @KFB=客房編號,@YDRQ=預(yù)定日期,@YDSL=預(yù)定數(shù)量 FROM 入住登記
WHERE 客戶編號=@KHB
--------建立觸發(fā)器--------------1.6、建立觸發(fā)器保證數(shù)據(jù)的一致性
客房使用狀態(tài)的控制
CREATE TRIGGER 控制觸發(fā)器
ON 入住登記 FOR INSERT AS
UPDATE 客房
SET 使用狀態(tài)='使用中' WHERE 客房編號=ANY(SELECT 客房編號 FROM INSERTED)
控制入住信息刪除的觸發(fā)器
CREATE TRIGGER 入住刪除觸發(fā)器
ON 入住登記 FOR DELETE AS BEGIN DELETE FROM 客戶 WHERE 客戶編號=ANY(SELECT 客戶編號 FROM DELETED)
UPDATE 客房
SET 使用狀態(tài)='未使用' WHERE 客房編號=ANY(SELECT 客房編號 FROM DELETED)END 客戶信息刪除的控制
CREATE TRIGGER 客戶刪除觸發(fā)器
ON 客戶
FOR DELETE AS BEGIN DELETE FROM 入住
WHERE 客戶編號=ANY(SELECT 客戶編號 FROM DELETED)
UPDATE 客房
SET 使用狀態(tài)='未使用' WHERE 客房編號=ANY(SELECT 客房編號 FROM DELETED)END
客房刪除觸發(fā)器
CREATE TRIGGER 客房刪除觸發(fā)器
ON 客房
FOR DELETE AS
DELETE FROM 入住
WHERE 客戶編號=ANY(SELECT 客戶編號 FROM DELETED)
酒店管理系統(tǒng)數(shù)據(jù)庫腳本
------------------------數(shù)據(jù)庫初始化------set nocount on set dateformat mdy go
use master
go if exists(select * from sysdatabases where name='酒店管理系統(tǒng)')
/*刪除在master中已存*/ /*在的名為酒店管理系統(tǒng)的數(shù)據(jù)庫*/ drop database 酒店管理系統(tǒng) go--------------------------酒店管理系統(tǒng)的建立-create database 酒店管理系統(tǒng) on primary /*設(shè)定系統(tǒng)主文件*/(name='酒店管理系統(tǒng)_data', filename='d:酒店管理系統(tǒng).mdf', size=10, maxsize=50, filegrowth=5)
log on
/*創(chuàng)建事務(wù)日志文件*/(name='酒店管理系統(tǒng)_log', filename='d:酒店管理系統(tǒng).ldf', size=5, maxsize=25, filegrowth=5)go
---------(注:刪除查詢分析器中的以上代碼后,運(yùn)行以下代碼)-----------------建立信息表----------use 酒店管理系統(tǒng)
if exists(select * from sysobjects where name='客戶')drop table 客戶 go print 'drop table 客戶' print 'create table 客戶' go /*客戶信息表*/ CREATE TABLE 客戶
/*創(chuàng)建客戶信息表*/(客戶編號 CHAR(8)PRIMARY KEY, 客戶名稱 CHAR(10)NOT NULL, 身份證號 CHAR(18)NOT NULL, 聯(lián)系地址 CHAR(25), 聯(lián)系電話 CHAR(10))go--------------------------插入客戶數(shù)據(jù)-----------------------INSERT INTO 客戶 VALUES('1001','王一',12234,'江西','3245354')INSERT INTO 客戶 VALUES('1002','張三',34234,'江西','2442442')INSERT INTO 客戶 VALUES('1003','李四',56465,'江西','5654645')INSERT INTO 客戶 VALUES('1004','王錢',65435,'江西','5676577')INSERT INTO 客戶 VALUES('1005','孫志',11464,'江西','4234343')if exists(select * from sysobjects where name='客房')drop table 客房 go print 'drop table 客房' print 'create table 客房' go /*客房信息表*/ CREATE TABLE 客房
/*創(chuàng)建客房信息表*/(客房編號 CHAR(8)PRIMARY KEY, 客房類型 CHAR(8)NOT NULL, 價(jià)格 SMALLMONEY NOT NULL, 床位數(shù) INT NOT NULL, 使用狀態(tài) CHAR(8)NOT NULL)go-----------------------插入客房數(shù)據(jù)----------------------INSERT INTO 客房 VALUES('101','一',100,1,'使用中')INSERT INTO 客房 VALUES('102','二',200,2,'使用中')INSERT INTO 客房 VALUES('103','二',200,1,'使用中')INSERT INTO 客房 VALUES('104','三',300,2,'使用中')INSERT INTO 客房 VALUES('105','三',300,1,'使用中')if exists(select * from sysobjects where name='入住登記')drop table 入住登記 go print 'drop table 入住登記' print 'create table 入住登記' go /*入住登記信息表*/ CREATE TABLE 入住登記
/*創(chuàng)建入住登記信息表*/(客房編號 CHAR(8)FOREIGN KEY REFERENCES 客房(客房編號),客戶編號 CHAR(8)FOREIGN KEY REFERENCES 客戶(客戶編號),預(yù)定日期 DATETIME,預(yù)定數(shù)量 INT, PRIMARY KEY(客房編號,客戶編號))go
---------------插入入住登記信息數(shù)據(jù)----------------------INSERT INTO 入住登記 VALUES('101','1001',2010-10-10,1)INSERT INTO 入住登記 VALUES('102','1002',2010-12-10,1)INSERT INTO 入住登記 VALUES('103','1003',2010-12-26,1)INSERT INTO 入住登記 VALUES('104','1004',2010-12-9,1)go
-----建立索引-------------------
CREATE UNIQUE INDEX UKF ON 客房(客房編號,價(jià)格)go CREATE UNIQUE INDEX UKH ON 客戶(客戶編號,客戶名稱)go CREATE UNIQUE INDEX URZ ON 入住登記(客戶編號,客房編號)go
----建立觸發(fā)器-------------------------建立控制觸發(fā)器(保證在客房使用狀態(tài)的一致性)------if exists(select * from sysobjects where name='控制觸發(fā)器')drop trigger 控制觸發(fā)器 GO CREATE TRIGGER 控制觸發(fā)器
ON 入住登記 FOR INSERT AS
UPDATE 客房
SET 使用狀態(tài)='使用中' WHERE 客房編號=ANY(SELECT 客房編號 FROM INSERTED)go
--------建立入住刪除觸發(fā)器(保證信息刪除的一致性)----------if exists(select * from sysobjects where name='入住刪除觸發(fā)器')drop trigger 入住刪除觸發(fā)器 GO CREATE TRIGGER 入住刪除觸發(fā)器
ON 入住登記 FOR DELETE AS BEGIN DELETE FROM 客戶
WHERE 客戶編號=ANY(SELECT 客戶編號 FROM DELETED)
UPDATE 客房
SET 使用狀態(tài)='未使用' WHERE 客房編號=ANY(SELECT 客房編號 FROM DELETED)END go-------建立客房刪除觸發(fā)器(保證刪除的一致性)---------if exists(select * from sysobjects where name='客房刪除觸發(fā)器')drop trigger 客房刪除觸發(fā)器 GO CREATE TRIGGER 客房刪除觸發(fā)器
ON 客房
FOR DELETE AS
DELETE FROM 入住
WHERE 客戶編號=ANY(SELECT 客戶編號 FROM DELETED)go---------創(chuàng)建查詢視圖----------------
CREATE VIEW 入住信息查詢
AS SELECT 入住登記.客房編號,客戶名稱,入住登記.客戶編號,客房.客房類型,價(jià)格,使用狀態(tài)
FROM 客房,客戶,入住登記
WHERE 客房.客房編號=入住登記.客房編號 AND 入住登記.客戶編號=客戶.客戶編號 go
---------建立存儲過程------------------------------客房信息插入存儲過程--------------------------CREATE PROCEDURE 插入客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS INSERT INTO 客房 VALUES(@KFB,@KFL,@JG,@CWS,@SYZT)GO
--------------------客房信息修改的存儲過程---------------------CREATE PROCEDURE 修改客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS UPDATE 客房
SET 客房類型=@KFL,價(jià)格=@JG,床位數(shù)=@CWS,使用狀態(tài)=@SYZT WHERE 客房編號=@KFB go--------------------客房信息刪除的存儲過程---------------------CREATE PROCEDURE 刪除客房信息(@KFB CHAR(8))AS DELETE FROM 客房 WHERE 客房編號=@KFB GO--------------------客戶信息插入的存儲過程---------------------CREATE PROCEDURE 插入客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS INSERT INTO 客戶 VALUES(@KHB,@KFM,@SFZ,@LXDZ,@LXDH)go--------------------客戶信息修改的存儲過程---------------------CREATE PROCEDURE 修改客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS UPDATE 客戶
SET 客戶名稱=@KFM,身份證號=@SFZ,聯(lián)系地址=@LXDZ,聯(lián)系電話=@LXDH WHERE 客戶編號=@KHB GO--------------------客戶信息刪除的存儲過程---------------------CREATE PROCEDURE 刪除客戶信息(@KHB CHAR(8))AS DELETE FROM 客戶
WHERE 客戶編號=@KHB go--------------------入住信息插入的存儲過程---------------------CREATE PROCEDURE 插入入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS INSERT INTO 入住登記 VALUES(@KFB,@KHB,@YDRQ,@YDSL)go--------------------入住信息修改的存儲過程---------------------CREATE PROCEDURE 修改入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS UPDATE 入住登記
SET 客房編號=@KFB,預(yù)定日期=@YDRQ ,預(yù)定數(shù)量=@YDSL WHERE 客戶編號=@KHB go--------------------入住信息刪除的存儲過程---------------------CREATE PROCEDURE 刪除入住信息(@KHB CHAR(8))AS DELETE
FROM 入住登記
WHERE 客戶編號=@KHB go--------------------客房編號查詢的存儲過程-----------------------if exists(select * from sysobjects where name='客房編號查詢')drop procedure 客房編號查詢 GO CREATE PROCEDURE 客房編號查詢(@KFB CHAR(8))AS SELECT 客房類型,價(jià)格,床位數(shù),使用狀態(tài) FROM 客房
WHERE 客房編號=@KFB go--------------------客戶編號查詢的存儲過程-----------------------if exists(select * from sysobjects where name='客戶編號查詢')drop procedure 客戶編號查詢 GO CREATE PROCEDURE 客戶編號查詢(@KHB CHAR(8))AS SELECT 客戶編號,客戶名稱,身份證號,聯(lián)系地址,聯(lián)系電話 FROM 客戶
WHERE 客戶編號=@KHB go--------------------入住信息查詢的存儲過程-----------------------if exists(select * from sysobjects where name='入住客戶編號查詢')drop procedure 入住客戶編號查詢 GO CREATE PROCEDURE 入住客戶編號查詢(@KHB CHAR(8))AS SELECT 客戶編號,客房編號,預(yù)定日期,預(yù)定數(shù)量 FROM 入住登記
WHERE 客戶編號=@KHB