Server应用程序开发课件_第1页
Server应用程序开发课件_第2页
Server应用程序开发课件_第3页
Server应用程序开发课件_第4页
Server应用程序开发课件_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章

SQLServer应用程序开发12.1使用Access开发

SQLServer应用程序在Access2000或更高版本中,可以使用Access项目对SQLServer数据库高效、方便的访问。使用Access项目可以轻松地创建客户/服务器应用程序。操作Access项目与操作Access数据库非常相似。除了要连接到SQLServer数据库外,在Access项目中创建和应用窗体、报表、数据访问页、宏和模块的方法,与在Access数据库中所用的方法是相同的。下面以Access2000为例来介绍如何使用Access来开发SQLServer应用程序。12.1.1创建Access项目Access项目是一种Access数据文件,它能通过OLEDB组件结构有效地以本地模式访问SQLServer数据库。OLEDB是一种组件数据库体系,它对多种类型数据源实现有效的网络和Internet访问。使用Access项目可以轻松地创建一个客户/服务器应用程序,既可以是基于窗体、报表的传统解决方案,也可以是通过数据访问页实现的基于Web的解决方案,或是两者的结合。1.创建Access项目并将其与现有SQLServer数据库连接启动Access2002,然后从“文件”选单中选择“新建”命令。在“新建文件”任务窗格中,单击“项目(现有数据)”,在“文件新建数据库”对话框中,单击“保存位置”框中的一个地址,并在“文件名”框中键入项目文件名,确保“MicrosoftAccess项目”出现在“保存类型”框中,之后,单击“创建”按钮。当出现“数据链接属性”对话框时,选择“连接”选项卡,然后选择或输入要登录的服务器名称。提供登录到服务器上所需的信息,为此应执行下列操作之一:若要使用Windows账户登录到SQLServer服务器,请单击“使用WindowsNT集成安全设置”选项。若要使用指定的登录ID和密码登录到SQLServer服务器,请单击“使用指定的用户名称和密码”选项,并输入相应的用户名称和密码。选中“在服务器上选择数据库”选项,然后在该选项下面的下拉式列表中选择要连接的SQLServer数据库(如示例数据库Northwind)。单击“确定”按钮,完成到指定数据库的连接,此时该数据库中包含的各个对象将显示在“项目”窗口中,如图12.4所示。在如图12.6所示的“MicrosoftSQLServer数据库向导”对话框中,键入要使用的服务器的名称、在服务器上具有CREATEDATABASE权限的账户的登录ID和密码以及新SQLServer数据库的名称,然后单击“下一步”按钮。注意如果正在创建一个SQLServer6.5数据库,请输入数据库设备和大小、事务处理日志设备和大小、数据库的大小和日志的大小。无需为SQLServer7.0或更高版本指定设备和大小。在Access2000中,可以使用MicrosoftSQLServer数据库向导创建SQLServer6.5或SQLServer7.0数据库。若要MicrosoftSQLServer数据库向导创建SQLServer2000数据库,则应使用Access2002。在如图12.7所示的对话框中,单击“完成”按钮。12.1.2打开Access项目步骤(1)在“文件”选单中选择“打开”命令。(2)单击“打开”对话框左侧的快捷方式,或者在“查找范围”框中单击包含要打开的Access项目的驱动器或文件夹。若要查看以前打开过的Access项目的快捷方式列表,请单击“打开”对话框左侧的“历史”。(3)在文件夹列表中双击文件夹,直到打开包含Access项目的文件夹。如果找不到想要打开的Access对象,请单击“打开”对话框右上角的“工具”,然后单击“查找”,并在“查找”对话框中输入搜索条件。(4)单击打开的Access项目文件,然后执行下列操作之一:若要打开Access项目,请单击“打开”按钮。若要以只读访问方式打开Access项目,请单击“打开”箭头,然后选择“以只读方式打开”命令。在Access2002中,可以只以独占模式打开Access项目。如果试图打开一个其他用户已经打开的Access项目,则Access会提示用户打开了该文件的一个只读副本。需要说明的是,当以只读模式打开Access项目时,仍然可以添加或修改数据,创建或修改表、视图、数据库图表或存储过程,因为数据和这些对象是驻留在SQLServer数据库中。然而,不能创建或修改窗体、报表、宏或模块,因为这些对象是驻留在Access项目中的。12.1.3连接到SQLServer数据库下面介绍将Access项目连接到SQLServer数据库,或者更改Access项目与SQLServer数据库的连接方法。在Access2002在,打开要连接到SQLServer数据库的Access项目。(1)从“文件”选单中选择“连接”命令。(2)在如图12.8所示的“数据链接属性”对话框中,选择“连接”选项卡。从下拉列表中选择一个服务器名,或键入想要访问数据库所在的服务器位置。单击“刷新”按钮,可以刷新服务器列表。(4)输入登录到服务器所需的信息,可以使用WindowsNT集成安全机制,也可以使用指定的用户名和密码。(5)从所选服务器上,选择要连接的SQLServer数据库。若要测试所做的设置是否正确,请单击“测试连接”按钮。此时,将尝试连接到指定的SQLServer数据库。如果连接失败,请确保设置是正确的。(6)单击“确定”按钮。12.1.4使用数据库表在Access2002中,既可以创建一个Access项目并将其与现有SQLServer数据库连接,也可以创建一个SQLServer数据库并将其与Access项目连接。无论是哪一种情况,只要打开了Access数据库中使用表设计器一样。所不同的是,对于Access项目来说,表存储在SQLServer数据库中;对于Access数据库来说,表即存储在该数据库中。下面介绍通过Access项目在SQLServer数据库创建表的方法。步骤启动Access2002,然后从“文件”选单中选择“新建”命令。在“新建文件”窗格中,单击“项目(新数据)”。在“文件新建数据库”对话框中,单击“保存位置”框中的一个地址,并在“文件名”框中键入一个名称(例中为Students),然后单击“创建”按钮。当出现“MicrosoftSQLServer数据库向导”对话框时,键入要使用的服务器的名称、在服务器上具有CREATEDATABASE权限的账户的登录ID和密码以及新SQLServer数据库的名称(例中为StudentsSQL),然后单击“下一步”按钮.单击项目窗口工具栏上的“新建”按钮。在项目窗口中双击“使用设计器创建表”。此时出现如图12.11所示的表设计器窗口,该窗口与SQLServer2000的表设计器基本相同。表设计器上部网格中的每一行对应表中的一列。

创建表时,需要对表中的每一列进行定义:在上部网格中指定列名称、选择数据类型并键入列说明文本,然后在窗口下部的“列”选项卡中对列的各种属性进行设置。按照要求,完成Students表结构的定义,并将student_id列设置为表的主键,然后单击工具栏中的“保存”按钮。当出现如图12.12所示的“选择名称”对话框时,在“输入表名称”框中输入Students,然后单击“确定”按钮。按照要求,完成Courses表结构的定义。按照要求,完成Scores表结构的定义。完成数据库表结构定义后,若要向表中输入数据或查看表中的数据,请单击该表,然后单击项目窗口工具栏上的“打开”按钮;若要修改表结构,请单击项目窗口工具栏上的“设计”按钮;若要删除一个表,请在项目窗口中单击该表,然后单击项目窗口工具栏上的“删除”按钮。步骤(1)在Access2002中打开项目Students.adp。在如图12.13所示的项目窗口中,单击对象栏下方的“数据库图表”,然后执行下列操作之一:(2)单击项目窗口工具栏上的“新建”按钮。在项目窗口中双击“使用设计器创建数据库图表”。(3)当出现如图12.14所示的“添加表”对话框时,按住Ctrl键依次单击要添加到数据库图表中的表,然后单击“添加”按钮,再单击“关闭”按钮。在本例中向图表中添加了三个表,即Students表、Courses表和Scores表。(6)重复步骤(4)和(5),通过course_id列在Scores表和courses表之间建立关系。(7)单击工具栏上的“保存”按钮,并在“另存为”对话框中指定图表名称,然后关闭数据库图表设计器窗口。创建数据库图表后,若要修改该图表的设置,请单击该图表,然后单击项目窗口工具栏上的“设计”按钮;若要删除该图表,请单击该图表,然后单击项目窗口工具栏上的“删除”按钮。12.1.6使用查询项目中的查询对应于SQLServer数据库中的视图,这种数据库对象存储在SQLServer数据库中,可以使用与表相同的方式在SQL查询语句中引用。在Access2002中,可以使用查询设计器来创建视图。[例12.3]本例说明如何使用查询设计器创建视图对象。在项目文件Students.adp中创建一个名为“学生成绩”的视图,其结果集内的数据分别来自Students表、Courses表和Scores表,所显示的输出列包括Students表中的student_num列、student_name列、Courses表中的course_name列以及Scores表中的score,要求按student_name列升序排列记录。步骤在Access2002中打开项目文件Students.adp。在如图12.17所示的项目窗口中单击对象栏下方的“查询”,然后单击项目窗口工具栏上的“新建”按钮,或者在项目窗口中双击“使用设计器创建视图”,以打开查询设计器窗口。向视图中添加所需表。当出现“添加表”对话框时,将Students表、Courses表和Scores表添加视图中,然后关闭“添加表”对话框,并进入查询设计器窗口.向视图中添加所需表列。在查询设计器窗口上部的“图表”窗格中,单击要输出的表列左侧的输出复选框,使这些列出现在下方的设计网格中。在本例中,通过视图输出的列包括Students表中的student_num列和student_name列、Courses表中的course_name列以及Scores表中的score列。指定输出列的别名。在设计网格中,分别在student_num,student_name,course_name和score列的“别名”框中键入中文名称,即“学号”、“姓名”、“课程名称”和“成绩”。

设置排序选项。在设计网格中,单击student_name列的“排序”单元格,然后选择“升序”选项,如图12.19所示。单击工具栏上的“保存”按钮,并在“另存为”对话框中将视图名称指定为“学生成绩”,然后单击“确定”按钮。从“视图”选单中选择“数据表视图”命令,或者单击工具栏上的“视图”按钮,或者单击工具栏的“运行”按钮,以浏览视图的运行结果,如图12.20所示。若要查看视图中的SQL语句,单击工具栏的“SQL”按钮即可。此时将在SQL窗格中看到以下SELECT查询语句:SELECTTOP100PERCENTdbo.Students.student_numAS学号,dbo.Students.student_numAS姓名,dbo.Courses.course_nameAS课程名称,dbo.Score.scoreAS成绩FROMdbo.CoursesINNERJOINdbo.ScoreONdbo.Courses.course_idINNERJOINdbo.StudentsONdbo.Scores.student_id=dbo.Students.student_idORDERBYdbo.Students.student_name由于事先已经使用图表设计器分别在Students表和Scores表以及Courses表和Scores表之间建立了关系,故在上述语句的FROM子句中自动出现了INNERJOIN运算符,通过内连接返回到在连接列中具有相等值的行。此外,在上述语句中还自动出现了TOP100PERCENT选项,如果不想使用该选项,可以单击工具栏上的“属性”按钮,然后在“属性”对话框的“视图”选项卡中清除“顶端”复选框。在Access项目中创建一个视图之后,若要在数据表视图中查看结果集的内容,请单击该视图,然后单击项目窗口工具栏上的“打开”按钮;若要在设计视图中修改该视图的定义,请单击该视图,然后单击项目窗口工具栏上的“设计”按钮;若从项目中要删除该视图,请单击该视图,然后单击项目窗口工具栏上的“删除”按钮。12.1.7使用窗体通过Access项目中的窗体可以输入和显示数据,这种窗体存储在Access项目中,数据本身则存储在SQLServer数据库中。在Access2002中,既可以在设计视图中创建窗体,也可以使用向导创建窗体。[例12.4]本例说明如何使用向导创建窗体。在项目文件Student.adp中创建一个名为“学生资料”的窗体,通过该窗体可以查看或修改Student表中的数据。步骤在Access2002中打开项目文件Student.adp。启动窗体向导。在如图12.21所示的项目窗口中单击对象栏下方的“窗体”,然后双击“使用向导创建窗体”。确定在窗体上使用哪些字段。当出现如图12.22所示的对话框时,首先从“表/查询”列表框中选择将要作用窗体数据源的表或视图,然后在“可用字段”列表框中依次双击所需要的每个字段,将它们添加到“选定的字段”列表框中。也可以从多个表或视图中选择字段。若要删除某个已经选定的字段,请在“选定的字段”列表框中双击该字段。在本例中,为窗体选择的字段均来自Student表,包括student_num,student_name,student_sex,birthdate,department,speciality,grade以及class字段。确定窗体上所需字段后,单击“下一步”按钮。确定窗体布局。当出现如图12.23所示的“窗体向导”对话框时,为窗体选择一种适当的布局方式。

每当选择一种布局方式时,可以在该对话框的左半部分查看相应的布局效果。例如,若要使每个表列都显示在一个独立的行上,并且左边带有一个标签,请选择“纵栏式”选项;若要使每一行的所有表列都显示在一行,标签显示在窗体的顶端,请选择“表格”选项。在本例中选择了“纵栏式”布局,单击“下一步”按钮。确定窗体样式。当出现如图12.24所示的“窗体向导”对话框时,选择窗体所用的样式,可供选择的样式有“Sumi画”、“国际”、“宣纸”、“工业”、“标准”、“沙岩”、“混合”、“石头”、“蓝图”和“远征”。在本例中选择了“标准”样式,然后单击“下一步”按钮。在如图12.25所示的“窗体向导”对话框中,将窗体的标题指定为“学生资料”,并选取“修改窗体设计”选项,然后单击“完成”按钮。在窗体设计器窗口中打开窗体之后,在窗体页眉区中添加一个标签,其文本内容为“学生资料”,并设置字体和字号;将每个文本框左侧的标签内容改为中文,例如将student_num改为“学号”,将student_name改为“姓名”,等等。经过修改后的窗体布局如图12.26所示。

从“视图”选单中选择“窗体视图”命令,或者单击工具栏上的“视图”按钮,以查看窗体的运行效果,如图12.27所示。在“窗体”视图中查看学生资料的情形如图12.27所示,此时可以通过单击窗体底部的浏览按钮在不同学生记录之间移动。在项目中创建一个窗体之后,若要在窗体视图中查看该窗体,请单击该窗体,然后单击项目窗口工具栏上的“打开”按钮;若要修改该窗体的布局,请单击该窗体,然后单击项目窗口工具栏上的“设计”按钮;若要删除该窗体,请单击该窗体,然后单击项目窗口工具栏上的“删除”按钮。12.1.8使用报表使用Access项目中的报表可以对数据进行计算、分组、汇总和打印,报表存储在Access项目中,数据本身则存储在SQLServer数据库中。在Access2002中,既可以使用报表设计器创建报表,也可以使用向导创建报表。[例12.5]本例说明如何使用向导创建报表。在项目Student.adp中创建一个名为“学生资料”的报表,按照学号升序显示所有学生的部分信息,并要求按照班级分组显示。步骤在Access2002中打开项目文件Student.adp。启动报表向导。在如图12.28所示的项目窗口中单击对象栏下方的“报表”,然后双击使用向导创建报表。确定报表上使用哪些字段。当出现如图12.29所示的“报表向导”对话框时,从“表/查询”列表框中选择“表:Students”,然后在“可用字段”列表框中依次双击所需字段,将它们添加到“选定的字段”列表框中.在本例中选定student_num,student_name,student_sex,birthdate,department,speciality,grade以及class字段。然后单击“下一步”按钮。确定分组级别。当出现如图12.30所示的“报表向导”对话框时,在左边的列表框中双击要作为分组依据的字段。在本例中选择class字段作为分组依据,然后单击“下一步”按钮确定排序次序。当出现如图12.31所示的“报表向导”对话框时,确定明细信息使用的排序次序,最多可以选择四个字段对记录排序,既可以是升序也可以是降序。单击“升序”按钮,则它变为“降序”,反之亦然。在本例中选择student_num字段作为排序依据,然后单击“下一步”按钮。

确定报表的布局方式和打印方向。在如图12.32所示的“报表向导”对话框中,为报表选择一种适当的布局方式,可供选择的布局方式有“递阶”、“块”、“分级显示1”、“分级显示2”、“左对齐1”以及“左对齐2”,每当选择一种布局方式时,都可以在对话框左边查看相应的布局效果;选择报表的打印方向,根据表中使用字段的多少可以选择“纵向”或者“横向”。在本例中,为报表选择的布局方式为“左对齐1”,打印方式为“纵向”,并选定“调整字段宽度使所有字段都能显示在一页中”复选框,然后单击“下一步”按扭.确定报表所用样式。在如图12.33所示的“报表向导”对话框中,为报表选择一种样式,可供选择的样式有“大胆”、“正式”、“淡灰”、“紧凑”、“组织”和“随意”。在本例中为报表选择“组织”样式,然后单击“下一步”按钮。指定报表标题。在如图12.34所示的“报表向导”对话框中,为报表指定标题(本例中为“学生资料”)。并选择“修改报表设计”选项,然后单击“下一步”按钮。在报表设计器窗口中打开报表之后,将报表中所有标签中的字段名改为中文,例如将“student_num”改为“学号”等,如图12.35所示。从“视图”选单中选择“打印预览”命令,或者单击工具栏上的“打印预览”按钮,以查看报表的布局效果。在项目中创建一个报表之后,若要在打印预览视图中查看该报表,请单击该报表,然后单击项目窗口工具栏上的“打印预览”按钮;若要修改该报表的布局,请单击该报表,然后单击项目窗口工具栏上的“设计”按钮;若要删除该报表,请单击该报表,然后单击项目窗口工具栏上的“删除”按钮。12.1.9通过项目管理SQLServer数据库通过Access项目中不仅可以管理存储在项目中的数据库对象(例如窗体和报表等),也可以管理存储在SQLServer数据库中的数据库对象(例如表、视图和数据库图表等),还可以对SQLServer数据库本身进行管理。1.显示SQLServer服务器属性步骤在Access2002中打开一个已与SQLServer建立连接的Access项目。在“视图”选单中选择“服务器属性”命令。此时出现如图12.37所示的“服务器属性”对话框,包含了以下信息:数据库产品(MicrosoftSQLServer);数据库版本号(8.0即为SQLServer2000版);数据库服务器的名称;Access项目连接到的当前SQLServer数据库的名称。

注意当前SQLServer数据库名称以及其文件格式(Access2000或Access2002)也显示在“项目”窗口的标题栏中,出现在Access项目文件名称的右侧。2.备份和还原数据库使用Access项目可以对SQLServer2000数据库进行备份和还原。应该经常定期备份数据库,以保护在硬件故障或意外损失时数据的安全。利用创建数据时制作的备份,可以还原这些数据。若要备份并还原SQLServer数据库,请使用SQLServer企业管理器。下面介绍通过Access项目来备份SQLServer数据库的方法。步骤打开一个连接到SQLServer2000的Access项目。选择“工具→数据库实用工具→备份SQL数据库”命令。当出现如图12.38所示的“备份”对话框时,在“文件名”框中输入备份文件的名称(.dat),或使用Access输入的默认名称。单击“确定”按钮。需要注意的是,上述操作不备份Access项目(.adp),该项目文件独立于所连接的SQLServer数据库。若要制作Access项目文件的备份,请使用Windows资源管理器,将该文件复制到安全的位置。若要还原数据库,必须断开所有用户与该数据库的连接,并关闭除“数据库”窗口外的所有窗口,然后执行以下操作。步骤打开一个连接到SQLServer2000的Access项目。选择“工具→数据库实用工具→还原SQL数据库”命令,当出现如图12.39所示的对话框时,单击“是”按钮。当出现如图12.40所示的“恢复”对话框时,在“查找范围”框中选择一个地址,然后找到所需要数据库备份文件(.dat)。单击数据库备份文件,然后单击“确定”按钮。3.删除数据库下面介绍从Access项目中删除SQLServer2000数据库的方法。

步骤断开所有用户与该数据库的连接,并关闭除“数据库”窗口外的全部窗口。打开连接到SQLServer2000的Access项目。选择“工具→数据库实用工具→删除SQL数据库”命令。单击“是”按钮,确认数据库删除操作。12.2使用VisualBasic开发

SQLServer应用程序VisualBasic是目前流行的可视化开发工具之一,它以简单易用而著称,不仅可以用于开发各种类型的桌面应用程序,也可以用于开发数据库应用程序。下面介绍如何使用VisualBasic6.0开发SQLServer应用程序,主要讲述通过数据控件、ADO数据控件以及数据环境访问SQLServer数据库的方法和步骤。12.21使用数据控件数据控件是VisualBasic的标准控件之一。在应用程序中,可以使用数据控件和各种数据绑定控件来显示和更新数据库中的信息。使用数据控件时,不用编写代码就能够创建简单的数据库应用程序。如果将数据控件与VisualBasic代码结合起来,则可以为数据处理提供高级的编程控件,从而设计出功能完备的数据库应用程序。1.数据控件概述

在VisualBasic中,使用数据控件能够将窗体与数据库连接起来,只需要编写少量代码甚至不用编写代码就能够完成下列任务。与本地数据库或远程数据库连接。基于SQL查询打开指定的数据库表或定义记录集。将数据字段传送到各种绑定控件,并在这些控件中显示或更新字段值。根据绑定控件中显示的数据变化来添加新记录或更新数据库。捕获访问数据时出现的错误。关闭数据库。2.在窗体上添加数据控件用数据控件访问数据库时,首先要在工具箱中单击数据控件按钮,并在窗体上添加一个数据控件。数据控件的大小和位置都可以重新设置,不过,习惯上是把该控件放在窗体的底部,并使其宽度与窗体的ScaleWidth

属性值相等。为此,请在属性窗口中把数据控件的Align属性设置为2,使数据控件大小将与窗体的尺寸同步变化,如图12.42所示。从图中可以看到,数据控件中间的空折区域中显示着Data1字样,这是数据控件的Caption属性所指定的文本。在运行时可以用该属性来显示当前记录号。3.设置数据控件连接的数据库使用数据控件时,首先指定要连接的数据类型,这可以通过在属性窗口中设置数据控件的Connect属性来实现。Connect属性的默认值是Access。如果要连接的不是Access数据库,而是其他类型的数据库,就必须对Connect属性进行设置,操作方法如下:在属性窗口中选定数据控件,然后单击Connect属性框并选择要连接的数据库类型。若要使用数据控件连接到指定的SQLServer数据库,则应当用手工方式在Connect属性框中输入以下字符串:ODBC;Driver={SQLserver};Server=ServerName;UID=UserID;PWD=Password;Database=DatabaseName

在上述连接字符串中,ODBC表示通过ODBC驱动程序建立与数据库的连接;Server指定要连接的SQLServer服务器;UID和PWD分别指定SQLServer登录名和密码;Database指定要连接的SQLServer数据库。例如,设SQLServer实例运行在计算机ABC上,有一个用户ID为hegels,相应的密码为123456,若要连接的数据库为StudentSQL,则连接字符串内容应为:ODBC;Driver={SQLserver};Server=ABC;UID=hegels;PWD=123456;Database=StudentSQL4.设置数据控件的记录来源设置要通过数据控件连接的SQLServer数据库之后,还需要设置该控件的RecordSource属性,以指定在数据绑定控件中显示的记录来源。数据控件的RecordSource属性的值是一个字符串表达式,其值可以是一个表名称,也可以是一个合法的SQL查询语句。一旦通过Connect属性指定要连接的SQLServer数据库文件,VisualBasic就会自动检索该数据库中的所有表和有效查询的名称,并将它们显示在RecordSource属性列表中.5.使用数据绑定控件数据绑定控件是数据识别控件,通过它来访问数据库中的信息。当一个控件被绑到数据控件时,VisualBasic将当前记录中的字段值应用于该控件,在该控件中显示数据,并允许进行修改。如果在绑定控件里改变了字段值,当移动到另一条记录时,所做的修改会自动地写入到数据库。在VisualBasic6.0中,可用做绑定控件的标准控件包括复选框、图像控件、标签、图片框、文本框、列表框以及组合框等;可用做绑定控件ActiveX控件包括DBList,DBCombo,DataList,DataCombo,MSFlexGrid,DBGrid以及MaskedEdit等。在使用任何ActiveX控件之前,都需要从“工程”选单中选择“部件”命令,然后在“部件”对话框中添加该控件。此外,还必须从“工程”选单中选择“引用”命令,然后在“引用”对话框中注册数据访问对象(DAO)库。下面介绍在应用程序中使用绑定控件的方法。步骤在窗体上添加数据控件,并设置与数据访问有关的一些基本属性,例如Connect和RecordSource属性等,以指定要访问的SQLServer数据。在同一窗体上添加绑定控件,并将其DataSource属性设置为数据控件的名称,从而将该控件绑定到数据库。将绑定控件的DataField属性设置为一个字段名称,从而将该控件绑定到当前记录的一个字段。注意设置DataSource属性后,VisualBasic会自动检索所有可用字段并显示在DataField属性的下拉式列表框中,如果在设计时数据库不可用,则在数据值从数据库中发送给控件之前,需要在运行时用代码提供一个有效的字段名称。例如,若要将文本框Text1绑定到student_num字段上,可以通过下面的语句来实现:

Text1.DataField=“student_num”对于个别字段也可以有多个绑定控件,但不必为表中的每个字段都提供一个绑定控件。数据控件和绑定控件并不一定要设为可视的。如果把数据访问的能力合并到设计的窗体中,便能够利用程序代码在后台进行数据处理。在程序运行时,数据控件、绑定控件与数据库一起工作,以访问当前记录集内的数据。使用数据控件的箭头按钮可以在不同的记录之间移动,而用绑定控件则可以查看或编辑从每个字段里显示出来的数据。无论何时,只要单击数据控件的箭头按钮,VisualBasic就会自动地更新对记录集所做的任何改变。6.用数据控件创建简单

的数据库应用程序[例12.6]本例演示如何使用数据控件和文本框创建一个数据库浏览程序。

步骤在VisualBasic6.0中创建一个标准EXE工程。在窗体上添加一个数据控件、五个文本框控件和五个标签控件,其中数据控件用于连接数据库,文本框控件用于显示字段值,标签控件用于提示字段标题。按照表12.4中的数据对窗体和控件的属性进行设置。在代码窗口中,编写数据控件Data1的Reposition事件过程:‘当移动记录指针时触发数据控件的Reposition事件PrivateSubData1_Reposition()‘因为记录集的AbsolutePosition属性总比记录号小1Data1.Caption=“当前记录号:”&Data1.Recordset.AbsolutePosition+1EndSub在上述代码中,用到了记录集对象的AbsolutePosition属性,该属性用于返回记录集内记录的相对记录号,而且第一条记录的记录号为0。为了用数据控件的Caption属性来显示当前记录号,应将数据控件Data1的RecordsetType属性设置为1(动态集)或2(快照型记录集)。按下F5键,运行程序。单击数据控件上的箭头按钮,可以在不同的记录之间移动,而且在数据控件中间显示出当前的记录号.12.2.2添加ADO数据控件ADO数据控件使用ActiveX数据对象(ADO)来快速建立数据绑定控件与数据源之间的联系,使用该控件可以快速创建记录集并通过数据绑定控件将数据提供给用户。1.添加ADO数据控件步骤在“工程”选单中选择“部件”。在“部件”对话框的“控件”选项卡中,选择MicrosoftADODataControl6.0(OLEDB)复选框。单击“确定”按钮,将ADO数据控件添加到VisualBasic的工具箱中,如图12.49所示。在工具箱中双击Adodc控件按钮,在窗体上添加一个ADO数据控件,如图12.50所示。2.设置ADO数据控件连接的数据库在窗体上添加ADO数据控件后,通过设置该控件的ConnectionString属性可以指定所要连接的SQLServer数据库,这种连接可以通过OLEDB提供程序或ODBC驱动程序来实现。OLEDB(ObejctLinking&EmbeddingDatabase)是一种基于COM访问数据的应用程序接口,它支持可以使用OLEDB提供程序的任意数据源的访问。ODBC(OpenDatabaseConnectivity)是一种数据访问应用程序接口,它支持可以使用ODBC驱动程序的任意数据源的访问。ConnectionString属性值是一个字符串,给出建立数据库连接所需要的所有信息,因此也称为连接字符串。该字符串的主要内容包括访问数据所用的提供程序或驱动程序、服务器名称、用户标识和登录密码以及要连接的默认数据库等。若要通过OLEDB提供程序来访问SQLServer数据库,应按照以下语法格式来设置ADO数据控件的ConnectionString属性值:Adodc1.ConnectionString=”PROVIDER=SQLOLEDB;DATASOURCE=ServerName;”&_”UID=User;PWD=Password;DATABASE=DatabaseName”若要通过ODBC驱动程序来访问SQLServer数据库,应按照以下语法格式来设置ADO数据控件的ConnectionString属性值:Adodc1.ConnectionString=”DRIVER={SQLServer};”&_”UID=UserID;PWD=Password;DATABASE=DatabaseName”3.设置ADO数据控件的记录来源在设置ADO数据控件所要连接的SQLServer数据库之后,还需要通过设置该控件的RecordSource属性来指定来源。

步骤在属性窗口中选择ADO数据控件。单击RecordSource属性框右边的对话按钮。当出现如图12.51所示的“属性页”对话框时,从“命令类型”列表框中选择所需命令类型:若要通过执行一个SQL语句来生成记录集,请选择“1-adCmdText”。若要从一个数据库表中检索数据库,请选择“2-adCmdTable”。若要通过执行一个存储过程来生成记录集,请选择“4-adCmdStoredPro根据步骤(3)完成的操作不同,执行下列操作之一:若在步骤(3)中选择的命令类型为2或4,请在“表或存储过程名称”框中选择所需的表名称或存储过程名称。若在步骤(3)中选择的命令类型为1,请在“命令文本(SQL)”框中输入一个SQL查询语句。单击“确定”按钮,完成RecordSource属性的设置。4.设置ADO数据控件的其他属性除了设置ConnectionString和RecordSource属性之外,使用ADO数据控件时经常需要设置以下属性。ConnectionTimeout属性:设置在中止前等待打开连接的时间量(单位为秒)。CursorLocation属性:指定所使用的游标引擎,其取值为2-adUseServer(服务器端游标)或3-adUseClient(客户端游标)。CursorType属性:设置用于下一级记录集的游标类型,其取值为1-adOpenKeyset(键集游标)、2-adOpenDynamic(动态游标)或3-adOpenStatic(静态游标)。5.使用ADO数据控件

开发数据库应用程序下面给出通过ADO数据控件访问数据库的例子。[例12.8]使用ADO数据控件和列表框控件设计一个数据库应用程序,其功能是根据学号查询成绩。在VisualBasic6.0中创建一个标准EXE工程。在工具箱中添加ADO数据控件,为此应在“部件”对话框的“控件”选项卡中选择MicrosoftDataGridControl6.0(OLEDB)。在窗体上添加ADO数据控件Adodc1.在窗体上添加其他控件,包括标签Label1和Label2、文本框Text1、命令按钮Command1、线段Line1以及列表框List1。按照表12.6中的数据设置窗体和控件的属性,设计好的窗体布局如图12.52所示。在窗体上双击命令按钮Command1,然后在代码窗口中编写该控件的Click事件过程,程序代码如下:PrivateSubCommand1_Click()ConstREC_SRC=”SELECTStudents.student_numAS学号,”&_“Students.student_nameAS课程,”&_“Scores.scoreAS成绩”&_“FROMCoursesINNERJOIN“&_“ScoresONCourses.course_id=Scores.course_idINNERJOIN“&_“StudentsONScores.student_id=Students.student_id“DimsNumAsString,Ssqlasstring,sfldnameasstring,sfldvalueasstringSnum=text1.text‘从文本框中取得输入的学号并存入变量snumIfsnum=””thenMsgbox“请指定学号!”,vbokonly+vbinformation,”学生成绩查询系统”ExitsubElse‘动态生成查询语句ssql=rec_src&”wherestudent_num=”&“‘“&snum&“‘“endifadodc1.recordsource=ssql‘动态设置ADO数据控件的记录来源adodc1.refresh‘打开或重新打开数据库内容‘recordset表示通过ADO数据控件打开的记录集,EOF属性为真表明记录为空ifadodc1.recordset.EOFthenmsgbox“查无此人。请核实后重新输入!”,vbokonly+vbinformation,”学生成绩查询系统”exitsubendifLabel2.Caption=adodc1.recordset.fields(“姓名”)&“同学的成绩如下:”List1.Clear‘清空列表框Sfldname=adodc1.recordset.fields(2).name&vbtab&vbtab&vbtab&_Adodc1.recordset.fields(3).nameList1.additemsfldname‘

将字段名添加到列表框List1.additem““Whilenotadodc1.recordset.eofSfldvalue=adodc1.recordset.fields(2).valud&vbtab&vbtab&_Adodc1.recordset.fields(3).valueList1.additemsfldvalue‘将课程和成绩添加到列表框Adodc1.receorset.movenext‘将记录指针移到下一条记录WendEndsub(7)按F5键,运行程序。在文本框中输入一个学号,然后单击“查看成绩”,如果指定的学生存在于数据库中,则会在列表框中显示该生各门课程的成绩.12.2.3使用数据环境设计器数据环境设计器为创建编程运行时数据访问提供了一个交互的设计时环境。在设计时,可以对Connection和Command对象设置适当的值、编写代码响应ADO事件、执行命令、创建合计与层次结构,也可以拖动DataEnvironment对象到窗体来创建数据绑定的控件。使用数据环境设计器可以完成下面的工作:添加一个数据环境设计器到一个VisualBasic工程中:创建Connection对象;基于表、视图、SQL语句或存储过程等创建Command对象;基于Command对象的一个分组,或通过与一个或多个Command对象相关来创建命令对象的层次结构;为Connection和Recordset对象编写和运行代码;从数据环境设计器中拖动一个Command对象中的字段到一个VisualBasic窗体或数据报表设计器。1.添加数据环境设计器

若要添加一个数据环境设计器对象到一个新的VisualBasic工程,请执行以下操作。

步骤从“文件”选单中选择“新建工程”命令。在“新建工程”对话框的“新建”选项卡中,选择“标准EXE”工程,然后单击“打开”按钮。从“工程”选单中选择“添加DataEnvironment”命令。一旦数据环境设计器被添加到VisualBasic工程中,数据环境设计器窗口出现,并且将一个Connection对象添加到数据环境,同时在工程窗口中出现一个DataEnvironment对象。2.创建Connection对象

若要通过数据环境访问数据,就必须创建一个Connection对象。因此,每一个数据环境应当最少包括一个Connection对象。一个Connection对象表示一个到远程数据库的连接,该数据库被用做一个数据源。一旦在VisualBasic工程中添加了一个数据环境,数据环境设计器就自动地包括一个新的连接,称为Connection1。在设计时,数据环境打开连接并从该连接中获得元数据,包括数据库对象、表结构和过程参数。若要创建新的Connection对象,请执行下列操作之一:在数据环境设计器窗口工具栏上单击“添加连接”按钮。右击数据环境设计器窗口,然后从快捷选单中选择“添加连接”命令。在数据环境中创建Connection对象之后,还必须设置它的连接属性,以指定所用的OLEDB提供程序以及要访问的数据库等。

步骤在数据环境设计器窗口中,单击相应的Connection对象。单击工具栏上的“属性”按钮,或者右击数据环境设计器窗口,然后从快捷选单中选择“属性”命令。在“数据链接属性”对话框的“提供者”选项卡中,选择MicrosoftOLEDBProviderforSQLServer作为OLEDB提供程序.在“数据链接属性”对话框的“连接”选项卡中,选择或输入运行SQLServer实例的服务器名称,输入登录该服务器的信息,在该服务器上选择所要访问的数据库,然后单击“确定”按钮,将所设置的属性应用于Connection对象,并关闭对话框.3.创建Command对象Command对象定义了从一个数据库连接中获取何种数据的详细信息。Command对象既可以基于一个数据库对象(例如一个表、视图或存储过程),也可以基于一个SQL查询。此外,还可以创建Command对象之间的关系来以层次结构的形式获取一组相关的数据。但要注意的是,要想使一个Command对象有效,必须和一个Connection对象相关联。如果一个Command对象返回数据,则它是“记录集返回”,返回的结果可以通过使用DataEnvironment对象中的一个Recordset对象进行访问。然而,如果一个Command对象不返回数据(例如执行一个更新的存储过程或SQL文本),则它是“非记录集返回”。数据环境设计器自动地识别Command是否是记录集返回。可以通过使用“Command属性”对话框中“高级”选项卡的“返回的记录集”复选框覆盖这个设置。在运行时如何访问Command对象取决Command对象是否是记录集返回。如果Command对象是记录集返回,既可以将Command对象作为DataEnvironment对象的一个属性,也可以作为它的一个方法来进行访问。如果它是非记录集返回,则Command对象只能作为一个方法来访问。任何时候都可以使用AddCommand函数,并且它与其他对象的存在与否无关。然而,一个没有与Connection对象关联的Command对象是无效的。如果一个Connection对象在添加过程中可以被从当前焦点中标识出来,则Command对象的ActiveConnection属性就被设置到这个Connection对象。如果一个Connection对象不能被标识,在将它与一个连接关联之前,Command对象是无效的。若要添加一个Command对象,请执行下列操作之一:在数据环境设计器工具栏中单击“添加命令”按钮。鼠标右键单击一个Connection对象或您的数据环境设计器,并从快捷方式选单中选择“添加命令”。添加一个Command对象之后,数据环境的“概要型”视图就显示新的Command对象,该对象的默认名称为“Command”和加在后面的一个数字,例如Command1。若要指定Command对象的属性,请执行以下操作。步骤右击Command对象,然后从快捷选单中选择“属性”命令,以访问“Command属性”对话框。选择“通用”选项卡,然后进行如下设置:命令名称:将数据库对象的默认“命令名称”改为一个更有意义的名字。例如,如果Command对象是基于一个叫做Customers的数据库表,可能想将Command1改为Customers。连接:如果Command对象是从一个Connection对象的快捷方式选单中创建的,Connection名称被自动地设置。但也可以更改这个Connection。数据库对象:从下拉列表中选择一个对象的名字。列出的对象来自连接,并且与选择的“数据库对象”类型匹配。SQL语句:如果选择该项作为数据源,在“SQL语句”框中输入一个对您数据库有效的SQL查询。若要建立此查询,可以单击“SQL生成器”按钮,以启动查询设计器如果Command对象是基于一个参数化的查询或一个存储过程,它可能有一个参数集合。若要设置参数属性,请在“Command属性”对话框中选择“参数”选项卡。(4)使用“关联”、“分组”和“合计”选项卡定义关系,并组织Recordset中包含的数据。(5)在“Command属性”对话框中选择“高级”选项卡,在该选项卡中设置高级属性,使数据环境可以对Command对象属性和它产生的Recordset对象进行控制。(6)单击“确定”按钮,将此属性应用于新的Command对象,并关闭对话框。12.3使用ASP开发

SQLServer应用程序ASP(ActiveServerPages)是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP页可以包含HTML标记、普通文本、脚本命令以及COM组件等。为了扩展ASP应用程序的功能,必须通过数据库访问组件实现对数据库的访问。数据库访问组件提供ADO对象(ActiveDataObjects)对数据库的访问。下面主要介绍ADO对象模型中的三个主要对象,即Connection对象、Recordset对象和Command对象,使用这些对象可以在ASP页面上实现对SQLServer数据库的访问。12.3.1使用Connection对象

Connection对象代表了打开的、与数据源的连接,该对象代表与数据源进行的惟一会话。如果是客户端/服务器数据库系统,该对象等价于到服务器的实际网络连接。使用该对象可以实现与SQLServer数据库的连接,也可以通过SQL语句对所连接的数据库进行各种操作。1.创建数据库连接

如果计划在ASP应用程序中对Web服务器上的数据库进行访问,就要建立一个数据库连接。没有数据库连接,应用程序就无法知道在哪里找到数据库,也不知道如何连接到数据库。下面介绍使用Connection对象建立数据库连接时用到的一些属性和方法。在使用Connection对象之前,应使用Server.CreateObject方法创建该对象的实例,语法格式如下:<%DimcnnSetcnn=Server.CreateObject(“ADODB.Connection”)%>2.使用Connection对象执行SQL查询Connection对象主要用于打开与指定数据库的连接。也可以使用该对象的execute方法还能够执行指定的查询、SQL语句、存储过程或特定提供程序的文本等内容。Execute方法的语法格式有下列两种形式。对于不按行返回的命令字符串:connection.executecommandtext,recordsaffected,options对于按行返回的命令字符串:setrec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论