1、第12章 VB开发SQL Server应用程序 教案用纸 (A-8)学科数据库基础与应用-SQL Server 2005第 12 章 节授课日期课题: VB开发SQL Server应用程序 课时18班级授课方式讲授、实训教学目的1、 了解数据库应用程序开发的常见方式2、 了解ODBC的体系结构3、 学会ODBC数据源的配置4、 了解ADO对象模型5、 使用ADO数据控件开发简单的数据库应用程序6、 了解VB代码对数据库的操作 重点、难点重点:使用ADO数据空间开发简单的数据库应用程序难点:了解VB代码对数据的操作教具准备教室、机房说明教学内容见附页一、课程引入1、存储过程的创建和执行2、存储过
2、程的管理3、存储过程的参数传递二、教学内容12.1 数据库应用程序开发概述 与数据库进行交互方式。 嵌入式SQL ODBC数据库应用程序 OLE DB数据库程序设计 ODBC配置 ODBC概述 配置ODBC数据源 ODBC的组成 应用程序(Application) ODBC管理器(Administrator) 驱动程序管理器(DriverManager) ODBCAPI ODBC驱动程序 数据源 ODBC各部件的关系配置ODBC数据源界面 用户DSN:显示当前登录用户使用的数据源清单。 系统DSN:显示可以由系统中全部用户使用的系统数据源清单。 文件DSN:显示允许连接到一个文件提供程序的数据
3、源清单。 驱动程序:显示所有已安装的驱动程序。 跟踪:允许跟踪某个给定ODBC驱动程序的所用活动,并记录到日志文件。 连接池:用来设置连接ODBC驱动程序的等待时间。 关于:显示由ODBC数据源管理器使用的动态连接库及其版本。 12.3 OLE DBOLE DB 是系统级的编程接口,它定义了一组COM 接口,这组接口封装了各种数据系统的访问操作,这组接口为数据使用方和数据提供方建立了标准 ADO 是应用层的编程接口,它通过OLE DB 提供的COM 接口访问数据 Microsoft定义了OLE DB的四个主要类型 数据提供者:指使用OLE DB软件开发工具创建OLE DB提供者的人。 数据消费
4、者:访问数据库中信息的应用程序、系统驱动程序或者用户。 数据服务提供者:创建用以增强用户或者数据库管理员使用或者管理数据库能力的独立应用程序。 部件开发者:创建应用程序模块或者部件,以减少创建数据库应用程序所需的编码工作。 OLE DB体系结构 OLE DB 模型包括以下COM 对象 数据源对象:数据源对象对应于一个数据提供者,它负责管理用户权限、建立与数据源的连接等初始操作。 会话对象:在数据源连接的基础上建立会话对象,会话对象提供了事务控制机制。 命令对象:数据使用者利用命令对象执行各种数据操作,如查询命令、修改命令等。 行集对象:提供了数据的抽象表示,它可以是命令执行的结果,也可以直接由
5、会话对象产生,它是应用程序主要的操作对象。 ADO包含的对象ConnectionCommand RecordsetErrorsPropertiesParameters Fields ADO对象模型 Connection 对象 Connection 对象代表与数据源之间的一个连接 通过ConnectionString、ConnectionTimeOut 和Mode 属性设置连接串、超时信息、访问模式。 设置CursorLocation 属性指定使用客户端游标, 设置连接的缺省数据库属性DefaultDatabase。 设置OLE DB 提供者的属性Provider。Connection 对象 通
6、过Open 和Close 控制Connection 对象与物理数据源的连接。 通过Execute 方法执行命令。 提供事务机制,通过BeginTrans、CommitTrans 和RollbackTrans 方法实现事务控制。 通过Errors 集合属性检查数据源的错误信息。 通过OpenSchema 方法获取数据库的表信息。 Command 对象 Command 对象代表一个命令 通过CommandText 属性设置命令串。 通过Parameters 集合属性和Parameter 对象定义参数化查询或存储过程的参数。 通过Execute 方法执行命令,可能的话,返回Recordset 对象。
7、 在执行命令之前,可通过设置CommandType 属性以便优化性能。 可以通过Prepared 属性指示底层的提供者为当前命令准备一个编译过的版本,以后再执行时,速度会大大加快。Command 对象 通过CommandTimeOut 属性设置命令执行的超时值( 以秒为单位)。 可以设置ActiveConnection 属性,为命令指定连接串,Command 对象将在内部创建Connection 对象。 可以设置Name 属性,这样以后可以在相应的Connection 对象上按Name 属性指定的方法名执行。 Recordset 对象 Recordset 对象代表一个表的记录集或者命令执行的结
8、果 利用CursorType 属性设置游标类型。 通过Open 方法打开记录集数据 通过MoveFirst、MoveLast、MoveNext 和MovePrevious 方法可以对记录集的游标进行移动操作。 ADO 提供了两种记录修改方式:立即修改和批修改。 ADO的一个典型的存取数据的基本步骤 1) 连接数据源。2) 指定访问数据源的命令。3) 执行命令,打开记录集对象。4) 使用记录集。5) 提供常规方法检测错误。6) 断开连接。 12.4 使用VB开发SQL Server应用程序 ADO的引用与查看 用ADO DATA控件开发简单的数据库应用程序 使用VB代码操纵数据库 ADO的引用与
9、查看在“工程”菜单中执行“应用”命令,打开“引用对话框” 在“视图”菜单中执行“对象浏览器”命令查看ADO提供的对象 及其属性、方法等在“工程”菜单中执行“部件”命令,打开“部件”对话框,将ADO控件添加到工具箱中举例用ADO DATA控件开发简单的数据库应用程序ADO DATA控件可以实现下面的功能: 连接一个本地数据库或远程数据库。 打开一个指定的记录集合、或定义一个基于结构化查询语言的查询、或存储过程。 将数据字段的数值传递给数据绑定的控件。 添加新的记录 举例。命令类型共有四种 1-adCmdText:文本类型命令,常用来输入SQL语句。 2-adCmdTable:表类型命令,常用来选
10、择数据库中的表。 4-adCmdStroedProc:存储过程类型命令,常用来选择一个存储过程。 8-adCmdUnknown:未知类型命令。 执行后的结果程序功能程序的主窗口如图12-24所示,点击“浏览”后的子窗口如图12-25所示,要求程序具有搜索、添加、删除和浏览学生基本情况表中的记录的功能,其中搜索功能是根据学生的学号来寻找一条记录。删除功能是将搜索功能中找到的记录进行删除。添加功能是根据窗口中几个文本框的值来添加一条记录。浏览功能是对表中的记录进行浏览,其中记录可以移到第一条记录、前移一条记录、后移一条记录、移到最后一条记录。 窗口界面说明在主窗口和浏览窗口中有七个标签控件,它们的
11、“Caption”属性分别为学号、姓名、性别、年龄、系别、专业和家庭地址,其它属性采用默认值。有七个文本框控件,它们的名称分别是text1、text2、text3、text4、text5、text6、text7。主窗口中有四个按钮控件,它们的“Caption”属性分别为搜索、添加、删除、浏览。浏览窗口中有四个按钮控件,它们的“Caption”属性分别为第一条、上一条、下一条和最后一条。 定义系统需要用到的变量代码Dim cn As ConnectionDim rs As RecordsetDim cmd As CommandDim p1 As ParameterDim p2 As Parame
12、terDim p3 As ParameterDim p4 As ParameterDim p5 As ParameterDim p6 As ParameterDim p7 As ParameterDim err As ADODB.Error启动系统时系统作一些初始化设置Private Sub Form_Load() Set cn = New Connection cn.CursorLocation = adUseClient cn.Open PROVIDER=MSDASQL;DSN=student;uid=sa;pwd= 连接ODBC数据源。 Set rs = New Recordset rs
13、.CursorType = adOpenStatic rs.Open 学生基本情况表, cn, , , adCmdTable 打开数据源中的表。 Set Text1.DataSource = rs 在文本框中显示表中指定记录的第1列。 Set Text2.DataSource = rs 在文本框中显示表中指定记录的第2列。 Set Text3.DataSource = rs Set Text4.DataSource = rs Set Text5.DataSource = rs Set Text6.DataSource = rs Set Text7.DataSource = rs End Sub
14、点击浏览按钮时打开浏览窗口Private Sub Command1_Click() Form2.Show 打开子窗口。End Sub定义子窗口启动后需要用到的变量代码Dim cnscan As ConnectionDim rsscan As RecordsetDim cmd As CommandDim err As ADODB.Error子窗口打开时的初始化处理代码Private Sub Form_Load() Set cnscan = New Connection cnscan.CursorLocation = adUseClient cnscan.Open PROVIDER=MSDASQL
15、;DSN=student;uid=sa;pwd= Set rsscan = New Recordset rsscan.CursorType = adOpenStatic rsscan.Open 学生基本情况表, cnscan, , , adCmdTable Set Text1.DataSource = rsscan Set Text2.DataSource = rsscan Set Text3.DataSource = rsscan Set Text4.DataSource = rsscan Set Text5.DataSource = rsscan Set Text6.DataSource
16、= rsscan Set Text7.DataSource = rsscanEnd Sub点击“最后一条”按钮时将显示表中的最后一条记录。Private Sub end_Click() rsscan.MoveLast 将指针移到最后一条记录。 End Sub 点击“第一条”按钮时将显示表中的第一条记录Private Sub first_Click() rsscan.MoveFirst 将指针移到第一条记录。End Sub点击“下一条”按钮时记录会下移一条。Private Sub next_Click() rsscan.MoveNext 指针下移一条记录。 If rsscan.EOF Then
17、rsscan.MoveLast 如果指针目前已经到了最后面,则指针移到最后一条记录。End Sub点击“上一条”按钮时记录会上移一条。Private Sub last_Click() rsscan.MovePrevious 将指针上移一条记录。 If rsscan.BOF Then rsscan.MoveFirst 如果指针目前已经到了最前面,则指针移到第一条记录。End Sub关闭子窗口时关闭相关数据源代码Private Sub Form_unLoad(cancel As Integer) rsscan.Close cnscan.CloseEnd Sub点击“添加”按钮时向表中添加一条记录代
18、码PPrivate Sub add_Click() Set cmd = New Command With cmd .ActiveConnection = cn 连接数据源。 .CommandText = insert into 学生基本情况表 values(?,?,?,?,?,?,?) End With Set p1 = cmd.CreateParameter(p1, adInteger, adParamInput) 定义输入参数。 Set p2 = cmd.CreateParameter(p2, adChar, adParamInput, 8) Set p3 = cmd.CreatePara
19、meter(p3, adChar, adParamInput, 2) Set p4 = cmd.CreateParameter(p4, adInteger, adParamInput, 4) Set p5 = cmd.CreateParameter(p5, adChar, adParamInput, 20) Set p6 = cmd.CreateParameter(p6, adChar, adParamInput, 20) Set p7 = cmd.CreateParameter(p7, adChar, adParamInput, 50) 点击“添加”按钮时向表中添加一条记录代码cmd.Par
20、ameters.Append p1 对应括弧中的参数。 cmd.Parameters.Append p2 cmd.Parameters.Append p3 cmd.Parameters.Append p4 cmd.Parameters.Append p5 cmd.Parameters.Append p6 cmd.Parameters.Append p7 p1.Value = Text1.Text 给参数赋值。 p2.Value = Text2.Text p3.Value = Text3.Text p4.Value = Text4.Text p5.Value = Text5.Text p6.Va
21、lue = Text6.Text p7.Value = Text7.Text cmd.Execute 执行SQL语句,将数据插入表。 MsgBox 成功插入数据End Sub 点击“删除”按钮时将删除当前记录代码Private Sub delete_Click() Set cmd = New Command s_id = Text1.Text With cmd .ActiveConnection = cn .CommandText = delete 学生基本情况表 where 学号=? .CreateParameter , adInteger, adParamInput, 4 End With
22、 cmd.Parameters(0) = s_id cmd.Execute MsgBox 成功删除数据End Sub退出系统时系统关闭数据源Private Sub Form_unLoad(cancel As Integer) cn.Close 关闭数据源。End Sub点击“搜索”按钮时将按学号在表中寻找记录Private Sub search_Click() Dim err As ADODB.Error Set cmd = New Command Set rs = New Recordset With cmd .ActiveConnection = cn .CommandText = sel
23、ect * from 学生基本情况表 where 学号=? End With Set p1 = cmd.CreateParameter(p1, adInteger, adParamInput) cmd.Parameters.Append p1 p1.Value = Text1.TextSet rs = cmd.Execute 将执行结果返回给数据集rs。 Set Text1.DataSource = rs Set Text2.DataSource = rs Set Text3.DataSource = rs Set Text4.DataSource = rs Set Text5.DataSou
24、rce = rs Set Text6.DataSource = rs Set Text7.DataSource = rsEnd Sub 三、上机实训:完成上面所讲的例题四、小结: 通过本章学习,更全面地了解VB开发平台,学会了使用代码开发更加复杂、灵活的数据库应用程序,掌握了VB的代码数据处理控件的使用,学会了使用代码数据处理控件的方法和事件,更加深入地了解VB开发数据库应用程序的知识,为开发完善的数据库应用程序打下了良好的基础。 五、布置作业: 课后复习、预习六、教学后记: 本章设计的内容很多,而且很难,特别大家以前没有学过VB程序开发,所以学起来会非常辛苦,希望大家课后找点关于VB程序开发的资料来补充所需要的知识点。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1