




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1 1页页第第7 7章章 数据库应用数据库应用 学生信息管理系统学生信息管理系统 数据库基础数据库基础 vb对数据库的访问对数据库的访问 使用使用sql语句生成记录集语句生成记录集 数据库记录的操作数据库记录的操作 ado编程模型简介编程模型简介 知识延伸知识延伸数据报表数据报表visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2 2页
2、页知识回顾知识回顾 windows api函数的引用函数的引用 必须先声明再使用必须先声明再使用提问:怎样声明提问:怎样声明apiapi函数?函数?visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3 3页页本章目标本章目标 掌握通过掌握通过adodc控件管理数据库控件管理数据库 掌握通过掌握通过adodb对象管理数据库对象管理数据库 熟悉数据库操作的熟悉数据库操作的sql语句语句 熟悉数据报表的制作熟悉数据报表的制作visual basic 可视化程序设计可视化程序设计首页首页 上页上页
3、 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第4 4页页引例七引例七示例:实现学生信息管理系统。示例:实现学生信息管理系统。(单击查看代码单击查看代码)visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第5 5页页数据库基础数据库基础 数据库就是一组排列成易于处理和读取的相关信息数据库就是一组排列成易于处理和读取的相关信息的集合。的集合。 关系模型已经成为数据库设计事实上的标准。关系模型已经成为数据库设计事实上的标准。数据库表visual basic 可
4、视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第6 6页页关系型数据库关系型数据库学号学号姓名姓名性别性别出生日期出生日期专业专业班级班级0101000100101010001001张彤均张彤均男男1987-06-151987-06-15计算机应用计算机应用0505级级1 1班班0101000100201010001002赵赵 琳琳女女1988-01-251988-01-25计算机应用计算机应用0505级级1 1班班0101000200101010002001李兆成李兆成男男1986-12-011986-12-01
5、计算机网络计算机网络0505级级2 2班班 表由若干行和若干列组成的二维表格。表由若干行和若干列组成的二维表格。 一个关系型数据库由多个这样的二维表格相关联一个关系型数据库由多个这样的二维表格相关联而成。而成。行行/记录记录列列/字段字段列标题列标题/字段名字段名主键主键visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第7 7页页创建创建access数据库数据库 两种创建方式两种创建方式 microsoft office access vb内置的内置的“可视化数据管理器可视化数据管理器”(
6、visdata)! 版本较早,功能较弱版本较早,功能较弱! 相应的相应的access数据库只能到数据库只能到7.0版本版本! 不能识别现在的不能识别现在的access2000或或access2003版版本本visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第8 8页页在在vb环境中创建数据库环境中创建数据库 启动数据管理器启动数据管理器 vb环境选择环境选择“外接程序外接程序 ” “可视化数据管理器可视化数据管理器 ” 建立数据库建立数据库 文件文件 新建新建 microsoft acces
7、s version 7.0 mdb(7) 在弹出对话框中输入文件名,单击保存后,建立一个不包在弹出对话框中输入文件名,单击保存后,建立一个不包含数据表的空数据库含数据表的空数据库 建立数据表建立数据表 右键单击右键单击“数据库窗口数据库窗口”空白处,选择空白处,选择“新建表新建表” 通过通过“添加字段添加字段”,创建该表的字段信息,创建该表的字段信息 添加索引添加索引 为了提高访问速度,可以在添加索引为了提高访问速度,可以在添加索引 输入记录输入记录visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11
8、-11第第9 9页页office access创建数据库创建数据库 建立数据库建立数据库 “新建数据库新建数据库” “空空access数据库数据库” 建立数据表建立数据表 数据库窗口中双击数据库窗口中双击“使用设计器创建表使用设计器创建表 ” 在表设计器中输入字段名称、数据类型、字段大小及在表设计器中输入字段名称、数据类型、字段大小及其他属性其他属性 关闭表设计器时,给表起名称关闭表设计器时,给表起名称 输入记录输入记录 建立表与表之间的关系建立表与表之间的关系 单击工具栏中的单击工具栏中的“关系关系”按钮按钮 在在“关系关系”窗口设置相应表的关系窗口设置相应表的关系visual basic
9、可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1010页页vb对数据库的访问对数据库的访问 ado 是一种基于对象的数据访问接口是一种基于对象的数据访问接口 ado访问数据库有两种主要形式访问数据库有两种主要形式! ado数据控件(数据控件(adodc)优点:代码少优点:代码少缺点:功能简单,不够灵活缺点:功能简单,不够灵活! ado对象编程模型(对象编程模型(ado代码)代码)优点:灵活性高,可编制复杂代码优点:灵活性高,可编制复杂代码缺点:代码编写量大,缺点:代码编写量大, 开发步骤开发步骤! 与数据库建立
10、连接,打开数据库与数据库建立连接,打开数据库 ! 从数据库中读取数据并在适当的控件中显示从数据库中读取数据并在适当的控件中显示 ! 对所获得的数据进行浏览以及增、删、改等操作,并对所获得的数据进行浏览以及增、删、改等操作,并将修改后的数据存入数据库将修改后的数据存入数据库 visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1111页页ado数据控件数据控件 ado数据控件(数据控件(adodc) 是是activex控件控件 位于位于microsoft ado data control 6.
11、0 工具箱内工具箱内adodc图标形状图标形状画在窗体上的画在窗体上的adodc图标外观图标外观visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1212页页 连接数据库及指定记录源连接数据库及指定记录源 右键单击右键单击adodc控件,在弹出菜单中选择控件,在弹出菜单中选择“属性属性”,连接数据库连接数据库 通过设置通过设置“连接字符串连接字符串”(connectionstring属性属性)可)可以连接数据库以连接数据库 指定记录源指定记录源三种连接方式三种连接方式accessacces
12、s数据库(数据库(v7.0v7.0以下)以下): :! microsoft jet 3.51 ole db provider microsoft jet 3.51 ole db provideraccessaccess数据库(数据库(v7.0v7.0以上)以上): :! microsoft jet 4.0 ole db provider microsoft jet 4.0 ole db providersql serversql server数据库数据库: :! microsoft ole db provider for sql server microsoft ole db provider
13、 for sql server命令类型命令类型(commandtype)记录来源记录来源(recordsource)visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1313页页记录源的指定记录源的指定命令类型:命令类型: commandtype属性属性 设置设置adodc控件是执行什么样的命令获得所需要的数据控件是执行什么样的命令获得所需要的数据 四种取值四种取值! 1 adcmdtext:执行的命令是一句:执行的命令是一句sql语句语句! 2 adcmdtable:执行的命令是一个表的
14、名称:执行的命令是一个表的名称! 4 adcmdstoredproc:执行的命令是一个存储过程的名称:执行的命令是一个存储过程的名称! 8 adcmdunknown:默认值,表示为设定执行命令的类型:默认值,表示为设定执行命令的类型记录源:记录源: recordsource属性属性 设置设置adodc具体的执行命令具体的执行命令 需根据需根据commandtype属性的赋值,决定属性的赋值,决定recordsource属性具属性具体的赋值内容体的赋值内容 例如例如! adodc1.commandtype = adcmdtext adodc1.recordsource = “select * f
15、rom 学籍学籍! adodc1.commandtype = adcmdtableadodc1.recordsource = “学籍学籍如果如果recordsourcerecordsource属性的赋值与属性的赋值与commandtypecommandtype所给类型所给类型不一致,在运行程序时,可能会提示不一致,在运行程序时,可能会提示“fromfrom子句语法错误子句语法错误”如果用代码重新设置了记录源,必须使用如果用代码重新设置了记录源,必须使用adodc1.refreshadodc1.refresh刷新对数据库的访问刷新对数据库的访问visual basic 可视化程序设计可视化程序设
16、计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1414页页数据绑定控件数据绑定控件 数据控件只能连接数据库产生记录集,不能显示数据控件只能连接数据库产生记录集,不能显示记录集中的数据,要显示记录集中的数据必须通记录集中的数据,要显示记录集中的数据必须通过能与它绑定的控件来实现。过能与它绑定的控件来实现。数据库数据库记录集记录集绑定控件绑定控件姓名:赵琳姓名:赵琳性别:女性别:女visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第151
17、5页页 在绑定控件中显示数据在绑定控件中显示数据 datasource属性属性! 数据源属性数据源属性! 指定(绑定到)指定(绑定到)ado数据控件数据控件 datafield属性属性! 数据字段属性数据字段属性! 绑定到特定字段绑定到特定字段! 当移动记录指针后,会自动将修改后的内容写入到数当移动记录指针后,会自动将修改后的内容写入到数据库据库 用代码设置绑定控件用代码设置绑定控件set text1.datasource = adodc1text1.datafield = 姓名姓名visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页
18、2021-11-112021-11-11第第1616页页练习例题练习例题示例:通过示例:通过adodcadodc实现如图所示功能。实现如图所示功能。要求:要求:! 用用adodcadodc连接数据库连接数据库student.mdbstudent.mdb! 用用datagriddatagrid控件显示控件显示“学籍学籍”表中的所有记录表中的所有记录! 通过通过adodcadodc控件控制记录的移动控件控制记录的移动(查看代码查看代码)visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1717
19、页页 不用绑定方法实现显示数据不用绑定方法实现显示数据 是指不对数据显示控件的是指不对数据显示控件的datasource和和datafield属性进行设置属性进行设置 是通过代码将当前记录某个字段的值显示在控件是通过代码将当前记录某个字段的值显示在控件(如文本框)中(如文本框)中 显示字段内容显示字段内容控件属性控件属性 = 记录集(记录集(“字段字段”)例如:例如:text1.text = adodc1.recordset(“姓名姓名 ”) 给字段重新赋值给字段重新赋值记录集(记录集(“字段字段”) = 控件属性控件属性例如:例如: adodc1.recordset(“姓名姓名 ”) = t
20、ext1.text获取某个字段值得形式:获取某个字段值得形式:! 记录集(记录集(“字段名字段名”)! 记录集记录集! !字段名字段名! 记录集记录集.fields.fields(索引)(索引)visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1818页页示例:通过代码和示例:通过代码和adodcadodc实现改变数据源功能。实现改变数据源功能。要求:要求:! 用用adodcadodc连接数据库连接数据库student.mdbstudent.mdb;! 登录时用登录时用datagridda
21、tagrid控件显示控件显示“学籍学籍”表中的表中的 所有记录,同时所有记录,同时text1text1文本框绑定显示文本框绑定显示“姓姓 名名”字段的信息,字段的信息,text2text2文本框代码显示文本框代码显示“姓姓 名名”字段的信息字段的信息! 单击单击“班级班级”按钮,数据源改为按钮,数据源改为“班级班级”表表! 单击单击“课程课程”按钮,数据源改为按钮,数据源改为“课程课程”表表! 单击单击“系部系部”按钮,数据源改为按钮,数据源改为“系部系部”表表! 单击单击“连接连接sqlsql数据源数据源”,数据源改为,数据源改为sql sql server server中一个数据库的表格中
22、一个数据库的表格(查看代码查看代码)visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第1919页页使用数据窗体向导使用数据窗体向导 通过数据窗体向导能建立一个访问数据的窗通过数据窗体向导能建立一个访问数据的窗口。口。 两种方法:两种方法: 方法一:方法一: 执行执行“外接程序外接程序 外接程序管理器外接程序管理器”打开打开“外外接程序管理器接程序管理器”,选择,选择“vb 6 数据窗体向导数据窗体向导”加载到加载到“外接程序外接程序”菜单中。菜单中。 执行执行“外接程序外接程序 vb 6
23、数据窗体向导数据窗体向导”命令命令 方法二:方法二: 工程工程 添加窗体添加窗体 “新建新建”选项卡选项卡 vb数据数据窗体向导窗体向导visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2020页页 第一步:选择第一步:选择“数据窗体向导数据窗体向导”命令命令 第二步:选择数据库类型第二步:选择数据库类型 第三步:选择具体的数据库文件第三步:选择具体的数据库文件 第四步:设置应用窗体的工作特性第四步:设置应用窗体的工作特性 第五步:选择记录源第五步:选择记录源 第六步:选择所需要的操作按钮
24、第六步:选择所需要的操作按钮数数据据库库数据窗体向导具体步骤数据窗体向导具体步骤visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2121页页使用使用sql生成记录集生成记录集 记录集记录集recordset 定义:将数据库中一个或多个表中的部分或全部数据定义:将数据库中一个或多个表中的部分或全部数据构成一个构成一个“记录的集合记录的集合” 记录集由行(记录)和列(字段)构成记录集由行(记录)和列(字段)构成 记录集对象具有特定的属性、方法和事件记录集对象具有特定的属性、方法和事件 ado
25、数据控件的数据控件的recordset属性代表属于本控件的记属性代表属于本控件的记录集对象录集对象 生成记录集最常用的方法是利用生成记录集最常用的方法是利用sql语句语句 sql structure query language,结构化查询语言,结构化查询语言 设置记录集时使用设置记录集时使用select语句语句visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2222页页结构化查询语言常用sql命令描 述creat创建新的表、字段和索引delete从数据库表中删除记录。select在数据
26、库中查找满足特定条件的记录。update改变特定记录和字段的值。常用sql命令子句描 述from用来为从其中选定记录的表命名。where用来指定所选记录必须满足的条件。group by用来把选定的记录分成特定的组。having用来说明每个组需要满足的条件。order by用来按特定的次序将记录排序。合计函数描 述avg用来获得特定字段中的值的平均数count用来返回选定记录的个数sum用来返回特定字段中所有值的总和max用来返回指定字段中的最大值min用来返回指定字段中的最小值visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页202
27、1-11-112021-11-11第第2323页页使用使用select语句查询语句查询 基本语法基本语法 select 字段表字段表 from 表名表名 where 查询条件查询条件 group by 分组字段分组字段having 分组条件分组条件 order by 字段字段asc|desc 可以在设计或代码中对数据控件的可以在设计或代码中对数据控件的recordsource属性设置属性设置sql语句,也可将语句,也可将sql语句赋予对象变量语句赋予对象变量 在建立在建立sql语句时,如果需要通过变量构造条件,语句时,如果需要通过变量构造条件,则需要在应用程序中将变量连接到则需要在应用程序中将
28、变量连接到select语句。语句。visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2424页页练习例题练习例题示例:最简单的示例:最简单的selectselect语句。语句。select select * * from from 学籍学籍备注:获得备注:获得“学籍学籍”表中的所有记录信息表中的所有记录信息 示例:选择示例:选择“学籍学籍”表中的表中的“学号学号”和和“姓名姓名”字段,字段,“成绩成绩”表中的表中的“课号课号”和和“分数分数”字段构成记录集。字段构成记录集。 select
29、select 学籍学籍. .学号学号, ,姓名姓名, ,课号课号, ,分数分数 from from 学学籍籍, ,成绩成绩 where where 学籍学籍. .学号学号 = = 成绩成绩. .学号学号备注:注意字段列表中的备注:注意字段列表中的“学号学号”的书写的书写限定记录集筛选条件限定记录集筛选条件示例:选择示例:选择“学籍学籍”表中所有男生构成的记录集表中所有男生构成的记录集 。select select * * from from 学籍学籍 where where 性别性别=“=“男男”visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页
30、后页 末页末页2021-11-112021-11-11第第2525页页示例:选择示例:选择“学籍学籍”表中表中“张彤均张彤均”的学号和姓名,根据的学号和姓名,根据其学号取其学号取“成绩成绩”表中该学生的各科成绩构成记录集表中该学生的各科成绩构成记录集 。select select 学籍学籍. .学号学号, ,姓名姓名, ,课号课号, ,分数分数 from from 学籍学籍, ,成绩成绩 where where 学籍学籍. .学号学号 = = 成绩成绩. .学号学号 and and 姓名姓名=“=“张彤均张彤均” 示例:查询所有姓示例:查询所有姓“张张”的学生的学生select select
31、* * from from 学籍学籍 where where 姓名姓名 like “like “张张%”%” 模糊查询(使用模糊查询(使用likelike关键字)关键字)示例:按学号升序排列学籍记录集示例:按学号升序排列学籍记录集select select * * from from 学籍学籍 order by order by 学号学号 ascasc记录集排序(使用记录集排序(使用order byorder by子句)子句)visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2626页页示
32、例:以示例:以“班级班级”作为分组字段,查询各班女生人数作为分组字段,查询各班女生人数 select select 班号班号,count(,count(* *) as ) as 女生人数女生人数 from from 学籍学籍 group by group by 班号班号 having having 性别性别=“=“女女” ” 备注:备注:asas关键字表示给该字段起别名关键字表示给该字段起别名count(count(* *) ):表示统计记录总数:表示统计记录总数记录分组(使用记录分组(使用group bygroup by子句)子句)示例:从示例:从“学籍学籍”表中查询班号,不能重复表中查询班
33、号,不能重复用用distinctdistinct关键字:关键字:select distinct select distinct 班号班号 from from 学籍学籍 where where 班号班号null and null and 班号班号” ” 用用group bygroup by子句:子句:select select 班号班号 from from 学籍学籍 group by group by 班号班号 having having 班号班号null and null and 班号班号” ” 过滤重复记录过滤重复记录visual basic 可视化程序设计可视化程序设计首页首页 上页上页
34、目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2727页页示例:在示例:在“学籍学籍”表中通过学号(字符串类型)查询某表中通过学号(字符串类型)查询某个学生的所有学籍信息,该学号有用户在文本框中输个学生的所有学籍信息,该学号有用户在文本框中输入(文本框名为:入(文本框名为:text1text1) adodc1.recordsource = “select adodc1.recordsource = “select * * from from 学籍学籍 where where 学号学号=” & text1.text & “”=” & t
35、ext1.text & “” 含有变量的含有变量的sqlsql语句语句visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2828页页数据集的操作数据集的操作 数据库记录的操作是针对记录集对象的操作数据库记录的操作是针对记录集对象的操作 如何移动记录指针如何移动记录指针 使用使用ado数据控件数据控件 使用程序代码使用程序代码! 步骤一:在窗体上放置步骤一:在窗体上放置4个按钮,分别为个按钮,分别为“首记录首记录”、“上上一记录一记录”、“下一记录下一记录”和和“末记录末记录”! 步
36、骤二:单击按钮时,分别用如下代码移动记录集对象指针步骤二:单击按钮时,分别用如下代码移动记录集对象指针 adodc1.recordset.movefirst 首记录首记录adodc1.recordset.moveprevious 上一记录上一记录adodc1.recordset.movenext 下一记录下一记录adodc1.recordset.movelast 末记录末记录visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第2929页页记录集指针记录集指针学学 号号姓姓 名名专专 业业课课
37、 程程成成 绩绩990001万 林物 理数 学85990002庄 前物 理外 语90。 。 。 。 。 。 。 。 。 。 。990010黎 明建 筑建 筑 学90 movelastmovefirstmovenextmovepreviousbofbofeofeofvisual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3030页页bof和和eof bof:位于第一条记录之前(记录集头):位于第一条记录之前(记录集头) eof:位于最后一条记录之后(记录集尾):位于最后一条记录之后(记录集尾) 当
38、记录指针移到当记录指针移到bof时若再向前(时若再向前(moveprevious)移动,或移到移动,或移到eof时再向后(时再向后(movenext)移动,都)移动,都会引发错误。会引发错误。 处理错误的方式:处理错误的方式: bof错误处理错误处理adodc1.recordset.movepreviousif adodc1.recordset.bof = true then adodc1.recordset.movefirst eof错误处理错误处理adodc1.recordset.movenextif adodc1.recordset.eof = true then adodc1.reco
39、rdset.movelast visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3131页页记录集的增删改查操作记录集的增删改查操作 查找查找 记录集的记录集的find方法方法! 格式格式记录集记录集.find 条件条件,跳行,搜索方向,开始位置,跳行,搜索方向,开始位置 ! 参数说明参数说明条件:字符串,类似条件:字符串,类似sql中的中的where子句子句跳行:默认为跳行:默认为0;当取;当取1的时候,可连续执行的时候,可连续执行find方法方法if adodc1.recordset.
40、recordcount 0 then adodc1.recordset.movefirst adodc1.recordset.find “姓名 = 张彤均” if adodc1.recordset.eof = true then msgbox “未找到姓名为张彤均的记录!” end ifend if visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3232页页用循环方式查找用循环方式查找adodc1.recordset.movefirstdo while not adodc1.recor
41、dset.eof if adodc1.recordset(“姓名”) = “张彤均” then exit do 找到,退出循环 end if adodc1.recordset.movenextloopif adodc1.recordset.eof = true then 若指针指向记录集尾,说明未找到else 否则,说明找到符合条件的记录end if visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3333页页用用sql语句查找语句查找dim strsql as stringstrsql
42、 = “select * from 用户 where 用户名=” & txtuserid.text & “”adodc1.recordsource = strsqladodc1.refreshif adodc1.recordset.bof = true and adodc1.recordset.eof = true then msgbox “无此用户!”end if visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3434页页添加记录添加记录 三步骤三步骤 调用记录集的调
43、用记录集的addnew方法方法记录集记录集.addnew 给新添加的空记录相应字段赋值给新添加的空记录相应字段赋值 调用记录集的调用记录集的update方法更新数据库方法更新数据库 例如:例如:adodc1.recordset.addnewadodc1.recordset(“学号学号”) = “01010001001”adodc1.recordset(“姓名姓名”) = “张彤均张彤均”adodc1.recordset(“性别性别”) = “男男”adodc1.recordset(“出生日期出生日期”) = “1987-6-15”adodc1.recordset(“班号班号”) = “0101
44、0001”adodc1.recordset.update visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3535页页练习例题练习例题 把运行时输入的数据添加入数据库把运行时输入的数据添加入数据库adodc1.recordset.addnewadodc1.recordset(“学号学号”) = trim(txtno.text)adodc1.recordset(“姓名姓名”) = trim(txtname.text)adodc1.recordset(“性别性别”) = trim(txtxb
45、.text)adodc1.recordset(“出生日期出生日期”) = dtpicker1.valueadodc1.recordset(“班号班号”) = left(trim(txtno.text), 8)adodc1.recordset.update 如果在未调用记录集的如果在未调用记录集的update方法之前移动了记方法之前移动了记录指针,系统将自动调用录指针,系统将自动调用update方法;方法;visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3636页页修改记录修改记录 两步骤
46、两步骤 给要修改记录的相应字段重新赋值给要修改记录的相应字段重新赋值 调用记录集的调用记录集的update方法更新数据库方法更新数据库 例如例如adodc1.recordset(“学号学号”) = “01010001001”adodc1.recordset!姓名姓名= “张彤均张彤均”adodc1.recordset.update 或者或者adodc1.recordset.fields(0) = “01010001001”adodc1.recordset.fields(1) = “张彤均张彤均”adodc1.recordset.update visual basic 可视化程序设计可视化程序设
47、计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3737页页删除记录删除记录 只需一步只需一步 调用记录集的调用记录集的delete方法方法记录集记录集.delete 例如例如adodc1.recordset.deleteadodc1.recordset.movenextif adodc1.recordset.eof and adodc1.recordset.recordcount 0 then adodc1.recordset.movelastend if 注意:此时不需要注意:此时不需要update方法,直接就执行数据库的删方法,直接
48、就执行数据库的删除。因此,在执行删除操作的时候,最好是使用除。因此,在执行删除操作的时候,最好是使用msgbox函数要求用户再次确认是否删除。函数要求用户再次确认是否删除。visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3838页页练习例题练习例题示例:在改变数据源的例题中增加以下功能。示例:在改变数据源的例题中增加以下功能。要求:要求:! 隐藏隐藏adoado数据控件,用数据控件,用4 4个按钮实现记录指个按钮实现记录指 针的移动,并避免移动错误产生。针的移动,并避免移动错误产生。!
49、增加增加“查找查找”、“添加添加”、“修改修改”、“删除删除”学学 籍信息的功能。籍信息的功能。! 单击单击“查找查找”时,查找姓名为时,查找姓名为“赵琳赵琳”的学生。的学生。! 单击单击“添加添加”、“修改修改”时,从另一个窗口进行时,从另一个窗口进行 相关的添加、修改操作。相关的添加、修改操作。! 单击单击“删除删除”时,要求用户再次确认。时,要求用户再次确认。(查看代码查看代码)visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第3939页页ado编程模型编程模型 位于位于工程工程 引
50、用引用 microsoft activex data object 2.x library ado的核心的核心 connection对象对象 command对象对象 recordset对象对象 ado对象的声明对象的声明 格式:格式:dim 变量名变量名 as new adodb.对象对象 或者或者 dim 变量名变量名 as adodb.对象对象 set 变量名变量名= new adodb.对象对象 必须先声明再使用必须先声明再使用visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第404
51、0页页 connection对象对象 用于建立与数据源的连接用于建立与数据源的连接 声明变量:声明变量:dim con as new adodb.connection 一个一个connection对象可以为多个对象可以为多个recordset和和command对象提供数据库连接服务对象提供数据库连接服务 因此,可在标准模块中声明一个全局的因此,可在标准模块中声明一个全局的connection对象对象变量使用变量使用 recordset对象对象 表示记录集,用于记录指针的移动和记录的查找、添加、表示记录集,用于记录指针的移动和记录的查找、添加、修改或删除修改或删除 声明变量:声明变量:dim r
52、s as new adodb.recordset command对象对象 用于对数据源执行指定的命令用于对数据源执行指定的命令 变量声明:变量声明:dim cmm as new adodb.command 这三个对象功能有交叉,因此可不必用这三个对象功能有交叉,因此可不必用commandvisual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第4141页页使用使用ado编程模型的一般步骤编程模型的一般步骤 第一步:声明第一步:声明ado对象变量对象变量 第二步:与数据库建立连接第二步:与数据库建立
53、连接dim cnn as adodb.connection dim cnn as adodb.connection 声明连接对象声明连接对象dim rs as adodb.recordset dim rs as adodb.recordset 声明记录集对象声明记录集对象dim mypath as string dim mypath as string 用于存放路径用于存放路径mypath = app.path mypath = app.path 设为本工程所在路径设为本工程所在路径若非根目录,路径后面加若非根目录,路径后面加“”if right(mypath,1) “” then mypat
54、h = mypath & “”if right(mypath,1) “” then mypath = mypath & “” 建立与数据库的连接。建立与数据库的连接。cnn.provider = “microsoft jet oledb 4.0” cnn.provider = “microsoft jet oledb 4.0” 指定提供者指定提供者设置数据源(指定数据库)设置数据源(指定数据库)cnn.connectionstring = “data source = ” & mypath & “student.mdb”cnn.connectionstring
55、= “data source = ” & mypath & “student.mdb”cnn.open cnn.open 与数据库建立连接与数据库建立连接visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第4242页页 第三步:设置记录集相关属性第三步:设置记录集相关属性 记录集的这些属性必须在记录集关闭时设置记录集的这些属性必须在记录集关闭时设置 第四步:打开记录集第四步:打开记录集锁定类型:开放式记录锁定锁定类型:开放式记录锁定rs.locktype = adlockop
56、timisticrs.locktype = adlockoptimistic游标类型:键集游标,允许在记录集中进行所有类型的移动游标类型:键集游标,允许在记录集中进行所有类型的移动rs.cursortype = adopenkeysetrs.cursortype = adopenkeyset设置记录集使用的连接对象为打开的设置记录集使用的连接对象为打开的connectionconnection对象对象set rs.activeconnection = cnnset rs.activeconnection = cnn设置记录集的记录源设置记录集的记录源rs.source = “select rs
57、.source = “select * * from from 学籍学籍” ” 若记录集处于关闭状态则将其打开若记录集处于关闭状态则将其打开 if rs.state = adstateclosed then rs.openif rs.state = adstateclosed then rs.openvisual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第4343页页 第五步:对记录集进行操作第五步:对记录集进行操作 包括增、删、改、查以及记录指针的移动包括增、删、改、查以及记录指针的移动 第六
58、步:第六步:ado对象的关闭对象的关闭if rs.state = adstateopen then rs.closeif cnn.state = adstateopen then cnn.close此时并没有村内存中删除此时并没有村内存中删除要想从内存删除,要执行要想从内存删除,要执行set rs = nothingset cnn = nothing visual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第4444页页记录集的记录集的open方法方法 语法语法 记录集记录集.open 记录源,活
59、动连接,游标类型,锁定类记录源,活动连接,游标类型,锁定类型,命令类型型,命令类型 参数说明参数说明 记录源:对应记录集的记录源:对应记录集的source属性属性 活动连接:对应记录集的活动连接:对应记录集的activeconnection属性属性 游标类型:对应记录集的游标类型:对应记录集的cursortype属性属性 锁定类型:对应记录集的锁定类型:对应记录集的locktype属性属性 命令类型:相当命令类型:相当adodc的的commandtype属性属性 例如例如rs.open “select * from 学籍学籍” , cnn, adopenkeyset, adlockoptimi
60、stic, adcmdtextvisual basic 可视化程序设计可视化程序设计首页首页 上页上页 目录目录 前页前页 后页后页 末页末页2021-11-112021-11-11第第4545页页练习例题练习例题示例:用示例:用adoado对象模型的方法实现原例题要求。对象模型的方法实现原例题要求。要求:要求:! 隐藏隐藏adoado数据控件,用数据控件,用4 4个按钮实现记录指个按钮实现记录指 针的移动,并避免移动错误产生。针的移动,并避免移动错误产生。! 增加增加“查找查找”、“添加添加”、“修改修改”、“删除删除”学学 籍信息的功能。籍信息的功能。! 单击单击“查找查找”时,查找姓名为时,查找姓名为“赵琳赵琳”的学生。的学生。! 单击单击“添加添加”、“修改修改”时,从另
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业分包施工合同范例
- 公务车服务合同范例
- 加盟中通合同范例
- PRDM1激活的PLXDC2通过JAK1-STAT3反馈调控肝细胞癌肿瘤相关巨噬细胞极化的研究
- 穿戴式心电信号智能分析方法研究
- 买抹账房合同范例
- 储物柜协议合同范例
- 钒钛基MAX相的制备及其储锂性能研究
- 人员施工安全合同范例
- 住房装潢合同范例
- 曲靖市出租汽车从业资格证区域科目考试题(附答案)
- 2025年安徽城市管理职业学院单招职业技能考试题库汇编
- 2025年湖南国防工业职业技术学院单招职业倾向性测试题库及参考答案
- 2025年湖南水利水电职业技术学院单招职业技能测试题库附答案
- 2025年河南建筑职业技术学院单招职业技能测试题库审定版
- 2025年湖南食品药品职业学院单招职业倾向性测试题库参考答案
- 2025年湖南水利水电职业技术学院单招职业适应性测试题库1套
- 2025年家政服务策划免责声明协议
- 2025新人教版语文七年级下册《第四单元》大单元整体教学设计2022课标
- 2024人工智能大模型技术财务应用蓝皮书
- DB51T 2572-2019 干旱河谷造林技术规程
评论
0/150
提交评论