第 19章 VB与数据库Word下载.docx
《第 19章 VB与数据库Word下载.docx》由会员分享,可在线阅读,更多相关《第 19章 VB与数据库Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
4.简述将ADOData控件连接到数据源的步骤。
答将ADO控件添加到窗体之后,必须建立ADO控件与数据源的连接,才能够实现对数据的各种操作。
ADO控件实现数据连接的关键属性是Connectionstring和RecordSource。
其中Connectionstring属性指出了ADO控件和数据库连接的连接字符串,通过这个连接字符串可以使ADO控件和OLEDBProvider(提供程序)支持的数据库连接;
RecordSource属性指出了可以操作的数据来源,即记录集的内容可以是一张表、一个存储过程或SQL命令生成的结果集等。
连接数据源的操作一般是在ADO控件的“属性页”对话框中进行的,其步骤如下:
(1)右击ADO控件,在弹出的快捷菜单中选择“ADODC属性”命令,或单击属性窗口中Connectionstring属性右边的“…”按钮,弹出“属性页”对话框。
(2)在“属性页”对话框的“通用”选项卡中,单击“生成”按钮,显示“数据链接属性”对话框。
在“提供程序”选项卡中,若选择连接到SQLServer2005数据库,应选中MicrosoftOLEDBProviderforSQLServer。
单击“下一步”按钮。
(3)打开“连接”选项卡,在“选择或输入服务器库名称”下拉列表框中输入服务器名称。
再进行安全登录验证,如输入登录名和密码。
在服务器上选择一个要连接的数据库名称。
(4)单击“测试连接”按钮可测试连接是否成功。
当连接成功后,单击“确定”按钮,返回“属性页”对话框,在“使用连接字符串”框中已经生成了一个连接字符串。
(5)在“属性页”对话框中选择“记录源”选项卡,在“命令类型”下拉列表框中选择2-adCmdTable,在“表或存储过程”下拉列表框中选择一个数据表名。
(6)单击“确定”按钮,结束连接数据源的操作。
5.如何用命令为DataGrid控件指定数据源?
答DataGrid控件的数据源属性为DataSource属性,可以使用以下语句设置DataGrid控件的数据源:
SetDataGrid控件名.DataSource=数据源
例如,以下语句表示将DataGrid1控件的DataSource属性设置为Adodc1:
SetDataGrid1.DataSource=Adodc1
6.使用DataCombo控件时,主要设置哪两个属性?
答使用DataCombo控件时,主要设置RowSource和ListField两个属性。
例如设置DataCombo控件DataCombo1的这两个属性如下:
RowSource="
Adodc1"
ListField="
sname"
7.图像列表控件ImageList有什么作用?
答图像列表控件ImageList是一个存储Image(图像)的数组,可以保存许多图像,以供其他控件使用。
因此它必须和其他控件或应用相结合,才能表现出强大的功能。
例如,ImageList控件和TreeView、ListView控件相结合,用以美化界面。
8.TreeView控件和ListView控件各有什么作用?
答TreeView控件用来显示信息的分级视图,如同Windows中显示的文件和目录。
ListView控件适合于表示数据的子集(比如数据库的成员)或分布式对象(比如文档模板),其中每个子对象都可以有一个可选的图标与其标签相关联。
9.CommonDialog控件有什么作用?
答公共对话框(CommonDialog)控件提供了Windows系统的标准对话框,例如,打开文件、保存文件、设置打印机、选择字体和选择颜色。
图19.1习题10窗体设计界面
10.有一个窗体,用于实现teacher表记录的简单查找,其界面如图19.1所示。
其中ADOData控件adodc1采用“ODBC数据资源名称”的方式,设置它们的DSN为schoolDBS,记录源为“SELECT*FROMteacher”,Visible属性为False。
“教师信息”框架中有6个标签(Label1数组)和6个文本框(Text1数组,它们的数据源分别对应teacher表的6个列)。
另有4个命令按钮(Comm1数组)用于记录导航。
编写该窗体上对应的事件过程。
解:
该窗体上对应的事件过程如下:
PrivateSubComm1_Click(IndexAsInteger)
SelectCaseIndex
Case0
IfNotAdodc1.Recordset.BOFThen
Adodc1.Recordset.MoveFirst
EndIf
Case1
Adodc1.Recordset.MovePrevious
Case2
IfNotAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveNext
Case3
Adodc1.Recordset.MoveLast
EndSelect
EndSub
11.设计一个窗体,用于实现teacher表按部门查询,其中部门通过数据下拉列表框选择。
设计一个窗体,如图19.2所示。
其中ADOData控件adodc1采用“ODBC数据资源名称”的方式设置它们的DSN为schoolDBS,记录源为SELECTdistinct(depart)FROMteacher,Visible属性为False。
ADOData控件adodc2采用“ODBC数据资源名称”的方式设置它们的DSN为schoolDBS,记录源为“SELECT*FROMteacher”,Visible属性为False。
“指定部门”框架中包含一个DataCombo1控件(其RowSource属性为adodc1,ListField属性为depart)和一个命令按钮Command1。
DataGrid控件DataGrid1的数据源为adodc2,并通过属性页修改其列标题、字体等。
图19.2习题11窗体设计界面图19.3习题11窗体执行界面
在该窗体上设计如下事件过程:
PrivateSubCommand1_Click()
Adodc2.RecordSource="
SELECT*FROMteacherWHEREdepart='
"
+_
DataCombo1.Text+"
'
Adodc2.Refresh
SetDataGrid1.DataSource=Adodc2
DataGrid1.Refresh
运行本窗体,指定“计算机系”的结果如图19.3所示。
12.设计一个窗体,用于实现teacher表按部门查询,其中部门通过TreeView控件选择。
图19.4习题12窗体设计界面
设计一个窗体,如图19.4所示。
“指定部门”框架中包含一个TreeView1控件,该控件从adodc1中提取相关部门显示。
PrivateSubForm_Load()
TreeView1.LineStyle=1
TreeView1.Style=7
Adodc1.Refresh
DoWhileNotAdodc1.Recordset.EOF
TreeView1.Nodes.Add,,"
K"
&
_
Trim(Adodc1.Recordset.Fields("
depart"
)),_
))
Loop
PrivateSubTreeView1_NodeClick(ByValNodeAsMSComctlLib.Node)
+Trim(Node.Text)+"
Label1.Caption="
查询部门:
+Trim(Node.Text)
运行本窗体,指定“计算机系”的结果如图19.5所示。
图19.5习题12窗体执行界面
13.设计一个窗体,用于实现student表记录的条件查找。
图19.6习题13窗体设计界面
设计一个窗体,如图19.6所示。
其中ADOData控件adodc1采用“ODBC数据资源名称”的方式设置它们的DSN为schoolDBS,记录源为“SELECT*FROMstudent”,Visible属性为False。
DataGrid控件DataGrid1的数据源为adodc1,并通过属性页修改其列标题、字体等。
“设置条件”框架中包含3个文本框(Text1数组,分别对应“学号”、“姓名”和“班号”)、两个单选按钮(opt1标题为“男”,opt2标题为“女”)和两个命令按钮(selcmd1的标题为“确定”,selcmd2的标题为“重置”)。
它们的数据源均为空。
recs=Adodc1.Recordset.RecordCount'
求出当前记录数,注意recs是模块变量
Text2.Text=recs
Ifrecs>
0Then'
已有学生时
Adodc1.Recordset.MoveLast'
移到最后一个记录
Adodc1.Recordset.MoveFirst'
移到开头记录
PrivateSubForm_Activate()
DataGrid1.SetFocus'
焦点移向DataGrid1控件
PrivateSubretComm_Click()
UnloadMe
PrivateSubselcmd1_Click()'
确定
condstr="
'
条件表达式,以下代码根据“设置条件”框架建立condstr
IfTrim(Text1(0).Text)<
>
"
Then
Ifcondstr="
snoLIKE'
+Trim(Text1(0).Text)+"
%'
IfTrim(Text1
(1).Text)<
snameLIKE'
+Trim(Text1
(1).Text)+"
Else
condstr=condstr+"
ANDsnameLIKE'
+Trim(Text1
(1).Text)+"
IfTrim(Text1
(2).Text)<
sclassLIKE'
+Trim(Text1
(2).Text)+"
ANDsclassLIKE'
+Trim(Text1
(2).Text)+"
IfOpt1.Value=TrueThen
ssex='
男'
ANDssex='
ElseIfOpt2.Value=TrueThen
女'
ANDssex='
Ifcondstr<
Then'
根据condstr返回相应的记录集
Adodc1.RecordSource="
SELECT*FROMstudentWHERE"
+condstr
Else'
返回ksb表中所有记录
SELECT*FROMstudent"
recs=Adodc1.Recordset.RecordCount
Ifrecs=0Then
MsgBox"
没有任何满足条件的记录"
vbOKOnly,"
信息提示"
PrivateSubselcmd2_Click()'
重置,将“设置条件”框架中的所有输入清空
Text1(0).Text="
Text1
(1).Text="
Text1
(2).Text="
Opt1.Value=False
Opt2.Value=False
运行本窗体,查找姓“王”学生记录的结果如图19.7所示。
图19.7习题13窗体执行界面
14.设计一个窗体,用于实现student表的记录操作,包括添加、编辑和删除记录。
设计一个窗体,如图19.8所示。
学生记录框架中包含4个文本框(Text1数组,分别对应“学号”、“姓名”、“出生日期”和“班号”)、一个下拉列表框(sexComb),这些控件DataSource属性均为adodc1,DataField属性对应student表中对应的列。
另有5个命令按钮(Comm1的标题为“添加”,Comm2的标题为“编辑”,Comm3的标题为“删除”,Comm4的标题为“确定”,Comm5的标题为“取消”)。
前3个命令按钮为操作组,后2个命令按钮为确认操作组,同一时刻只显示其中的一组。
DimselAsInteger
edit(False)
buttons
(1)
PrivateSubComm1_Click()'
添加操作
sel=1
Adodc1.Recordset.AddNew
edit(True)
buttons
(2)
Text1(0).SetFocus
PrivateSubComm2_Click()'
编辑操作
sel=2
PrivateSubComm3_Click()'
删除操作
sel=3
Adodc1.Recordset.Delete
PrivateSubComm4_Click()'
确定操作
Adodc1.Recordset.Update
Ifsel=3Then
ElseIfNotAdodc1.Recordset.BOFThen
PrivateSubComm5_Click()'
取消操作
Adodc1.Recordset.CancelUpdate
PrivateSubedit(ByValopAsBoolean)
Text1(0).Enabled=op
Text1
(1).Enabled=op
Text1
(2).Enabled=op
Text1(3).Enabled=op
sexComb.Enabled=op
PrivateSubbuttons(ByValopAsInteger)
Ifop=1Then
Comm1.Visible=True
Comm2.Visible=True
Comm3.Visible=True
Comm4.Visible=False
Comm5.Visible=False
Comm1.Visible=False
Comm2.Visible=False
Comm3.Visible=False
Comm4.Visible=True
Comm5.Visible=True
运行本窗体,通过adodc1控件的箭头找到一个记录,如图19.9所示,单击“编辑”按钮,可以对记录进行修改;
如图19.10所示,单击“确定”按钮表示确认修改,单击“取消”按钮表示放弃本次修改。
图19.8习题14窗体设计界面图19.9习题14窗体执行界面
(1)
图19.10习题14窗体执行界面
(2)
上机实验题14参考答案
建立连接Factory数据库的名称为Factory的系统DSN。
设计一个窗体,用于实现worker表的记录查找、添加、修改和删除功能。
操作过程
1.创建数据源Factory
其操作步骤如下:
(1)在WindowsXP中选择“开始”|“控制面板”|“管理工具”命令,出现如图19.11所示的“管理工具”窗口。
图19.11“管理工具”窗口
(2)双击“ODBC数据源”,打开“ODBC数据源管理器”对话框;
选择“系统DSN”选项卡,如图19.12所示。
(3)单击“添加”按钮,出现如图19.13所示的对话框;
选择SQLServer选项,单击“完成”按钮。
图19.12“系统DSN”选项卡
(4)出现“创建到SQLServer的新数据源”对话框,如图19.14所示;
在“名称”文本框中输入Factory,在“服务器”下拉列表框中输入LCB-PC,单击“下一步”按钮。
图19.13“创建新数据源”对话框图19.14“创建到SQLServer的新数据源”对话框
(5)出现连接SQLServer认证的输入框,如图19.15所示。
选择“使用用户输入登录ID和密码的SQLServer验证”单选按钮,在“登录ID”文本框中输入sa,在“密码”文本框中输入123456,单击“下一步”按钮,进入选择数据库的对话框,如图19.16所示。
图19.15“连接SQLServer”的身份认证对话框图19.16数据选择对话框
(6)选中“更改默认的数据库为”复选框,从其下方的下拉列表框中选择数据库为Factory,不更改其他默认设置。
设置完毕后,单击“下一步”按钮,进入设置ODBC对话框,如图19.17所示。
保持默认选项,单击“完成”按钮,
(7)出现ODBC配置的确认对话框,如图19.18所示。
单击“测试数据源”按钮,即弹出一个关于测试结果对话框,如图19.19所示,表示测试成功。
单击“确定”按钮。
(8)出现如图19.20所示的“系统DSN”选项卡,从中看到了新建的Factory数据源,单击“确定”按钮,完成整个基于ODBC的数据库的连接。
图19.17ODBC设置对话框图19.18ODBC配置测试结果提示框
图19.19测试结果图19.20“系统DSN”选项卡
2.设计窗体用于实现worker表记录操作
设计一个窗体,其设计界面如图19.21所示。
图19.21上机实验题14窗体设计界面
其中ADOData控件adodc1采用“ODBC数据资源名称”的方式设置它们的DSN为Factory,记录源为“SELECT*FROMworker”,Visible属性为False。
“职工记录”框架中包含5个文本框(Text1数组,分别对应“职工号