VB60+SQL综合实验6学时.docx
《VB60+SQL综合实验6学时.docx》由会员分享,可在线阅读,更多相关《VB60+SQL综合实验6学时.docx(19页珍藏版)》请在冰点文库上搜索。
VB60+SQL综合实验6学时
VB6.0+SQL综合实验
步骤一:
建立数据库
新建数据库,命名为“KCGL”,在里面新建5个表:
dept、course、sc、student和users。
其中前四个表的表结构和数据见实验三。
Users表用来存放用户的帐号和密码,表结构如下:
属性列名
数据类型
长度
是否为空
主键
Username
Char
10
否
是
Password
Char
10
否
Users表建好后,往表中插入几个用户的用户名和密码(自己给定)。
步骤二:
新建窗体
打开VB6.0,新建一个标准的EXE文件。
在右下角的“属性窗口”框中,在“名称”中输入“Frmlogin”,在”Caption”中输入“登录”。
如下图所示:
然后在工程资源管理器中,鼠标右键点击“窗体”,选择“添加”,再选择“添加窗体”。
如下图所示:
弹出“选择窗体”对话框,点击“打开”。
此时可以看到工程资源窗口有两个工程文件,如下图所示:
将Form1的名称改为“frmmain”,Caption改为“学生信息管理”。
(方法:
在属性窗口中修改)
步骤三:
设置窗体
向Frmlogin窗体分别添加两个Label控件、两个TextBox控件和两个CommandButton。
控件在左侧工具箱,如下图所示:
鼠标左键点击需要添加的控件,放到右边的窗体中,就可以添加控件了。
添加完控件后需要修改属性,方法是在属性窗口里面修改。
各控件属性修改如下:
控件
属性
属性值
Label1
Caption
欢迎进入长沙学院学生管理系统
AutoSize
True
Label2
Caption
学号
AutoSize
True
Label3
Caption
密码
AutoSize
True
Textbox1
Text
Textbox2
PasswordChar
*
Text
Command1
Caption
登录
Command2
Caption
退出
设置好后的窗体如下图所示:
在菜单栏上点击“工程”—>“引用”,在“microsoftactivexdataobjects2.6library”前面打勾,点击“确定”。
如下图所示:
步骤四:
填写代码(重要)
首先双击“登录”按钮,打开代码编辑界面,输入如下代码。
要注意的是“DataSource=DEXX25”表示本机服务器的名字为“DEXX25”,大家做实验时需要将你们自己的机子作为服务器,方法是点击右下角的SQL服务管理器查看。
PrivateSubCommand1_Click()
DimCnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimcmdAsNewADODB.Command
DimconnstringAsString
DimsqlstrAsString
StaticiCountAsInteger
connstring="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=kcgl;DataSource=DEXX25"
sqlstr="select*fromuserswhereusername='"&Trim(Text1.Text)&"'andpassword='"&Trim(Text2.Text)&"'"
Cn.Openconnstring
Setrs=Cn.Execute(sqlstr)'使用连接对象的Execute方法,返回记录集
Ifrs.EOFThen
iCount=iCount+1
MsgBox"用户名或密码不正确,请重新登录"
Text1.Text=""
Text2.Text=""
Text1.SetFocus
Else
Frmlogin.Hide
Frmmain.Show
UnloadFrmlogin
EndIf
rs.Close
Cn.Close
IfiCount>=3Then
MsgBox"超过次数",,"登录失败"
End
EndIf
Setrs=Nothing
SetCn=Nothing
EndSub
接着双击“退出”按钮,输入如下代码:
PrivateSubCommand2_Click()
End
EndSub
步骤五:
启动窗体(F5)
按F5或工具栏上的
,启动窗体,输入用户名和密码,点击“登录”。
若用户名和密码输入正确,若弹出“学生信息管理”窗口,表示登录成功,如下图所示:
步骤六:
编辑菜单编辑器
双击“frmmain”窗体,选择菜单栏上的“工具”—>“菜单编辑器”,按照下图进行输入:
前面有”....”的表示为二级菜单,可以通过点击
来实现。
名称和标题如下表所示:
标题
名称
备注
学生信息
Mnu1
一级菜单
基本信息
Mnu4
学生信息下的二级菜单
信息查询
Mnu5
学生信息下的二级菜单
信息插入
Mnu6
学生信息下的二级菜单
课程信息
Mnu2
一级菜单
基本信息
Mnu7
课程信息下的二级菜单
选课信息
Mnu3
一级菜单
基本信息
Mnu8
选课信息下的二级菜单
退出
Mnu9
一级菜单
设置好后,按F5,或点击“启动”,可以看到下图所示界面:
单击“学生信息”,显示如下图:
单击“课程信息”,显示如下图:
单击“选课信息”,显示下图:
单击“退出”,则退出学生信息管理界面。
步骤七:
为工程再添加3个新窗体
为工程1再添加3个新窗体。
这三个窗体的属性如下:
窗体
名称
Caption
Form1
studinfo
学生基本信息
Form2
studselect
学生信息查询
Form3
studinsert
学生信息插入
双击“frmmain”,单击“学生信息”,选择“基本信息”,弹出代码窗口,在代码窗口中输入以下代码:
PrivateSubmnu4_Click()'单击“基本信息”时,弹出“学生基本信息”窗口
studinfo.Show
EndSub
单击“学生信息”,选择“信息查询”时,弹出代码窗口,在代码窗口中输入以下代码:
PrivateSubmnu5_Click()'单击“信息查询”时,弹出“学生信息查询”窗口
studselect.Show
frmmain.hide
EndSub
单击“学生信息”,选择“信息插入”时,弹出代码窗口,在代码窗口中输入以下代码:
PrivateSubmnu6_Click()'单击“信息修改”时,弹出“学生信息修改”窗口
studinsert.Show
Frmmain.Hide
EndSub
单击“退出”时,弹出代码窗口,在代码窗口中输入以下代码:
PrivateSubmnu9_Click()'单击“退出”时,退出“学生信息管理”界面
End
EndSub
步骤八:
学生基本信息窗体
双击“studinfo”,在窗体上添加两个控件:
datagrid和adodc。
如果找不到这两个控件,则需要在工具栏中选择“工程”“部件”,在弹出的“部件”窗口中选择这两个控件,点击“确定”。
如下图所示:
在工具箱中找到这两个控件,拖拽到“studinfo”的窗体上,调节大小进行布局,如下图所示:
步骤九:
连接数据库
鼠标点击“adodc”控件,右键选择“adodc属性”,弹出“属性页”对话框。
在“通用”中点击“生成”,弹出“数据链接属性”框,在“提供程序”中选择“Microsoftoledbproviderforsqlserver”,点击“下一步”,进入“连接”页面。
按照下图进行设置:
注意!
“DEXX25”是我的数据库服务器的名称,做实验时记得选择你们自己
的数据库服务器的名称!
(通过查看电脑桌面右下角的“sqlserver服务管理器”就可以知道你们自己的数据库服务器的名称)。
点击“测试连接”,如果能连接成功表示vb通过adodc控件已经连上了数据库,接着点击“确定”。
回到“属性页”,选择“记录源”。
选择要显示数据的表名。
由于studinfo窗体显示的是学生表的基本信息,因此此处选择“student”,点击“确定”。
如下图所示:
接下来要在“学生基本信息”窗体的datagrid中显示student表中的数据。
因此要将datagrid的数据来源指定。
方法是打开“datagrid1”的属性窗口,在“datasource”的下拉框中选择“adodc1”。
运行结果如下图:
将表的每一个属性列用中文名字显示,如下图所示。
具体方法已经在课堂上讲过。
步骤十:
学生信息查询
双击“studselect”,弹出“学生信息查询”窗体。
在窗体中添加6个控件:
一个label控件,一个textbox控件,两个button控件,一个datagrid控件和一个adodc控件。
控件属性如下表所示进行设置:
控件
属性
属性值
Label1
Caption
请输入要查询的学号
AutoSize
True
Textbox1
Text
Command1
Caption
查询
Command2
Caption
返回
Adodc
Visible
False
Adodc连接数据库的设置参见步骤九。
注意在“记录源”处的命令类型要选择“1-adcmdtext”,在“命令文本(SQL)”中输入select*fromstudentwheresno='"&trim(text1.text)&"'
接着鼠标点击“datagrid1”,在右边的属性窗口中找到“datasource”,选择下拉框的“adodc1”。
双击“command1”控件,在弹出的代码窗口输入以下代码:
PrivateSubCommand1_Click()
OnErrorGoToerror:
IfText1.Text<>""Then
IfText1.TextThensearchSQL="SELECT*FROMstudentwheresno="&"'"&Text1.Text&"'"
Else
MsgBox"条件不能为空,请输入查询依据!
",vbOKOnly+vbExclamation,"警告"
ExitSub
EndIf
Adodc1.RecordSource=searchSQL
Adodc1.Refresh
IfText1.TextThen
IfAdodc1.Recordset.EOFThen
MsgBox"没有这个学生!
",vbOKOnly+vbExclamation,"警告"
EndIf
Else
IfAdodc1.Recordset.EOFThen
MsgBox"没有这个班级!
",vbOKOnly+vbExclamation,"警告"
EndIf
EndIf
ExitSub
error:
MsgBoxErr.Description
EndSub
双击“command2”控件,输入以下代码:
PrivateSubCommand2_Click()
studselect.Hide
Frmmain.Show
EndSub
学生信息查询界面已经完成,运行程序,输入要查询的学生的学号,就可以
查到学生的个人信息。
如下图所示:
注意要将表的属性列用中文标题显示。
步骤十一:
学生信息插入
双击“studinsert”窗体,在窗体上添加7个label控件,7个textbox控件和两个commandbutton控件,控件属性设置如下表所示:
控件
属性
属性值
Label1
Caption
学号
Label2
Caption
姓名
Label3
Caption
性别
Label4
Caption
班级
Label5
Caption
系部
Label6
Caption
籍贯
Label7
Caption
出生日期
Textbox1
名称
Txtsno
Textbox2
名称
Txtsname
Textbox3
名称
Txtssex
Textbox4
名称
Txtsclass
Textbox5
名称
Txtsdept
Textbox6
名称
Txtaddress
Textbox7
名称
Txtsbirth
Command1
Caption
插入
Command2
Caption
返回
设置好的窗体如下图所示:
双击“插入”按钮,在弹出的代码框中输入以下代码:
PrivateSubCommand1_Click()
DimConnAsADODB.Connection
DimrsvalidAsADODB.Recordset
SetConn=NewADODB.Connection
connstring="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=kcgl;DataSource=DEXX25"
Conn.Openconnstring
Dimstrsql$,sno$,sname$,ssex$,sclass$,sdept$,address$,sbirth$
sno=Replace(Trim(txtsno.Text),"'","")
sname=Replace(Trim(txtsname.Text),"'","")
ssex=Replace(Trim(txtssex.Text),"'","")
sclass=Replace(Trim(txtsclass.Text),"'","")
sdept=Replace(Trim(txtsdept.Text),"'","")
address=Replace(Trim(txtaddress.Text),"'","")
sbirth=Replace(Trim(txtsbirth.Text),"'","")
Ifsno=""Then
MsgBox"学号不能为空",,"输入错误"
txtsno.SetFocus
ExitSub
ElseIfsname=""Then
MsgBox"姓名不能为空",,"输入错误"
txtsname.SetFocus
ExitSub
ElseIfssex=""Then
MsgBox"性别不能为空",,"输入错误"
txtssex.SetFocus
ExitSub
ElseIfsclass=""Then
MsgBox"班级不能为空",,"输入错误"
txtsclass.SetFocus
ExitSub
ElseIfsdept=""Then
MsgBox"班级不能为空",,"输入错误"
txtsdept.SetFocus
ExitSub
ElseIfaddress=""Then
MsgBox"地址不能为空",,"输入错误"
txtaddress.SetFocus
ExitSub
ElseIfsbirth=""Then
MsgBox"出生日期不能为空",,"输入错误"
txtsbirth.SetFocus
ExitSub
EndIf
Setrsvalid=NewADODB.Recordset
strsql="select*fromstudentwheresno='"&sno&"';"
rsvalid.Openstrsql,Conn,1,1
IfNotrsvalid.EOFThen
MsgBox"该学号已存在"
txtsno.SetFocus
rsvalid.Close
Setrsvalid=Nothing
ExitSub
EndIf
rsvalid.Close
Setrsvalid=Nothing
DimrsAsADODB.Recordset
Setrs=NewADODB.Recordset
rs.Open"select*fromstudent",Conn,1,3
rs.AddNew'使用记录集对象的AddNew方法添加记录
rs("sno").Value=sno
rs("sname").Value=sname
rs("ssex").Value=ssex
rs("sclass").Value=sclass
rs("sdept").Value=sdept
rs("address").Value=address
rs("sbirth").Value=sbirth
rs.UpdateBatch
rs.Close
strsql="select*fromstudent"
rs.Openstrsql,Conn,3,3
MsgBox"插入成功!
"
txtsno.Text=""
txtsname.Text=""
txtssex.Text=""
txtsclass.Text=""
txtsdept.Text=""
txtaddress.Text=""
txtsbirth.Text=""
EndSub
双击“返回”按钮,在弹出的代码框中输入以下代码:
PrivateSubCommand2_Click()
Frmmain.Show
studinsert.Hide
EndSub
运行程序,查询学生的信息,如果弹出“插入成功!
”的对话框,说明信息已插入,可以到“信息查询”界面里查询刚插入的学生的信息。