任务三访问Access数据库.ppt

上传人:本田雅阁 文档编号:2592801 上传时间:2019-04-14 格式:PPT 页数:48 大小:2.03MB
返回 下载 相关 举报
任务三访问Access数据库.ppt_第1页
第1页 / 共48页
任务三访问Access数据库.ppt_第2页
第2页 / 共48页
任务三访问Access数据库.ppt_第3页
第3页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《任务三访问Access数据库.ppt》由会员分享,可在线阅读,更多相关《任务三访问Access数据库.ppt(48页珍藏版)》请在三一文库上搜索。

1、VB.NET程序设计,任务三 访问Access数据库,学习目标,1、了解数据库、表、字段、记录等基本概念 2、了解使用Access系统创建Access数据库 3、掌握访问Access数据库的方法,数据库术语,数据库(Database):存储于文件中的有组织的信息集合 数据表(Table):由行和列组成的信息集合 字段(Field):存储于数据库中的信息的类别 记录(Record):有关一个特定客户或企业的所有信息叫一条记录,ADO.NET,1、VB.NET并非是用来创建新数据库的,而是用于显示、分析和操作数据库中的信息。 2、 ADO.NET是VB.NET提供的一种新的访问数据库的数据模型(或

2、叫数据访问工具),通过这种数据模型可以访问更多格式的数据库(如Access、FoxPro、Paradox、Oracle、SQL Server等);也不管这些数据库放在什么位置都能访问(本地或是网上)。 3、组成ADO.NET的是一些类,这些类位于System.Data命名空间中,他们提供了连接数据库、读取数据库和更新数据库等操作。,预备知识结构化查询语言SQL,SQL是一种标准化的数据库查询语言,虽说是一种查询语言,但它可完成对数据库的各种操作,包括数据的查询、增加、修改、删除以及其他操作。 SQL主要语句: Select语句、Insert语句、Update语句、 Delete语句。,预备知识

3、结构化查询语言SQL,Select语句的语法格式: Select 字段名 From 数据表名 Where 条件 举例: Select * From 学生信息 Select * From 学生信息 Where 姓名=“李丽” Select 姓名 From 学生信息 Where 姓名=“李丽” select * from student1 where 学号=3 select * from student1 where 学号 Between 5 And 10,预备知识结构化查询语言SQL,Select语句举例: select * from student1 where 姓名 like “刘*” se

4、lect * from 书名 where 书籍类别 In (“数据库”,”Internet”) select * from 书名 where 书籍类别 In (“数据库”) And PubID=1 select * from student1 where 姓名 like “刘*” order by 学号 ASC 注:使用ORDER BY子句排序,升序的关键字为ASC,降序为DESC 。,预备知识结构化查询语言SQL,update 、 insert 、 delete 语句举例: insert into StuInfo(name,age) values( “张山” ,19) update StuI

5、nfo set name=“张三“,age=18 where id=005 delete * from StuInfo where id = 18,使用Access创建数据库,操作步骤: 1、启动Access办公软件 2、文件/新建 3、双击“使用设计器创建表” 4、设置主键:右击某个字段名,选“主键” 5、添加数据:双击表名,直接添加数据,保存,访问Access数据库显示,访问Access数据库显示,方法一:在Visual Studio.NET中建立连接 1、从工具箱中的“数据”标签中双击OleDbDataAdapter对象 如果工具箱中的“数据”标签中没有OleDbDataAdapter对

6、象,则可以右击“数据”工具箱中某控件例如DataSet控件,从弹出的快捷菜单中执行选择项命令(如图),打开“选择工具箱项”对话框,选择“.NET Framework组件”选项卡,从中选择OleDbCommand、OleDbConnection、OleDbDataAdapter这三个组件(在这三项组件的名称前的方框内打勾即可)。单击“确定”按钮,这三个组件就被添加到工具箱中了。,方法一:在Visual Studio.NET中建立连接,接下来,出现“数据适配器配置向导”对话框,点击“新建连接”按钮。出现“添加连接”对话框。可以执行“更改”选择数据源的类型。这里选择“其他”,然后点“确定”,接着,在

7、OLE DB提供程序下选择: Microsoft Jet 4.0 OLE DB Provider,方法一:在Visual Studio.NET中建立连接,点“数据链接”按钮。出现“数据链接属性”对话框,在“连接”选项卡中选择或输入数据库名称右边的小按钮中选取数据库文件。选好后,点“测试连接”,提示“测试连接成功”,方法一:在Visual Studio.NET中建立连接,点“确定”,回到“添加连接”对话框 点“确定”,回到“数据适配器配置向导”对话框,可以查看连接字符串。 点“下一步”,出现如图3对话框。这里请选择“是”(那么访问数据库时,将是相对路径,即.exe可执行文件和数据库文件将在同一个

8、目录下),接着再点“下一步”,方法一:在Visual Studio.NET中建立连接,出现如图后,点“查询生成器”按钮。选择要用的表,然后点“添加”,把要用的字段依次打勾。然后点“确定”。,方法一:在Visual Studio.NET中建立连接,回到如图对话框,点“下一步”,点“完成”。最终,窗体下方生成“OleDbDataAdapter1”和“OleDbConnection1”两个对象(如图)。,3,方法一:在Visual Studio.NET中建立连接,右键“OleDbDataAdapter1”,选择“生成数据集”,点“确定”后,生成数据集对象“DataSet11”,3,方法一:在Visu

9、al Studio.NET中建立连接,2、将数据源绑定到一个或多个显示控件上 问题:什么样的控件可以做为数据源的显示控件? 一般来说,凡是具有DataBindings属性的控件都可做显示控件,典型的例子: TextBox 、Label、ComboBox等控件,方法一:在Visual Studio.NET中建立连接,将数据源绑定控件的操作如下: 在属性窗口中设置文本框的DataBindings属性 打开DataBindings分类,单击Text属性,单击下拉箭头 选择某个数据集对象中某个表的某个字段,方法一:在Visual Studio.NET中建立连接,3、编写一部分代码 关键代码:利用数据适

10、配器给数据集手动加载数据 OleDbDataAdapter1.Fill(Dataset11) 上述代码可以放在某个命令按钮的单击事件过程中,也可放在窗体的Load事件过程中,方法一:在Visual Studio.NET中建立连接,课堂实训,访问Access数据库显示,方法二:使用较多的代码 ADO.NET对象结构,方法二:使用较多的代码,ADO.NET对象功能(访问数据库时要用到的对象及步骤) 1 、Connection对象负责连接数据库 2、 Command对象负责对数据库下达SQL命令 3、在ADO.NET中,介于Dataset和Connection对象之间还有一个对象DataAdapte

11、r,负责传递数据。 4、Dataset对象用来保存所查询到的数据记录,是一种非连接的数据缓存。,方法二:使用较多的代码,创建Connection对象时,可以使用2个类: 1、SqlConnection类:管理SQL Server 7.0或以上数据源的连接,该类位于System.Data.Sqlclient 命名空间。 2、OledbConnection类:管理可通过OLEDB访问的数据源的连接,例如 Access数据库。该类位于System.Data.OLEDB 命名空间。 同样,创建Command对象和DataAdapter对象时都有2个类可以选择,要看访问的数据源的类型。,方法二:使用较多

12、的代码,方法二:使用较多的代码 1、声明连接对象 Dim Mycn As New OleDbConnection Mycn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:luo人力资源管理系统hrmbook.mdb;Persist Security Info=False“ 2、声明命令对象 Dim myCommand As New OleDbCommand myCommand.CommandText=“select * from 职员基本信息表” myCommand.Connection=Mycn 3、声明

13、数据适配器对象 Dim myDataAdapter As New OleDbDataAdapter myDataAdapter.SelectCommand = myCommand 4、声明数据集对象 Dim myDataSet As New DataSet 5、打开连接 Mycn.Open() 6、通过数据适配器填充已连接的数据源的数据到数据集中(一个数据适配器只能填充一张表) myDataAdapter.Fill(myDataSet, “职员表“) 7、关闭连接 Mycn.Close(),方法二:使用较多的代码,连接好数据库后,用代码绑定数据集到显示控件,如下所示: Me. TxtName.

14、DataBindings.Add(“text”, myDataSet, “职员基本信息表.姓名“) Me. TxtID.DataBindings.Add(“text”, myDataSet, “职员基本信息表.职员编号“) 其他要注意的地方: 在类定义的开头要指出数据访问对象所在的命名空间: Imports System.Data.OleDb,方法二:使用较多的代码(例子),例1:用较多代码访问数据库(请注意访问数据库的步骤,访问数据库时使用的是相对路径【数据库文件和可执行文件在同一个文件夹里】),数据库为Student.mdb,有一个Records表,该表字段为:编号,姓名,性别,出生日期,

15、家庭住址,手机,Email,Oicq。,方法二:使用较多的代码( 例子),例2:请注意定义连接等对象的代码和例1有所不同。 说明:本例子并没有用到命令对象,请注意连接对象数据适配器对象的定义和赋值 1、声明连接字符串(访问该数据库时用的是绝对路径) Dim sConnString As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:VS2005ProjectWindowsApplication7binDebugStudent.mdb;Persist Security Info=False“ 2、声明连接对象 Dim Mycn

16、As New OleDbConnection(sConnString) 3、声明命令对象 Dim myCommand As OleDbCommand 4、声明数据适配器对象 Dim myDataAdapter As New OleDbDataAdapter 5、声明数据集对象 Dim myDataSet As New DataSet 6、打开连接 Mycn.Open() 7、通过数据适配器填充已连接的数据源的数据到数据集中(一个数据适配器只能填充一张表) Dim mySql As String mySql = “select * from Records“ myDataAdapter = Ne

17、w OleDbDataAdapter(mySql, Mycn) myDataAdapter.Fill(myDataSet, “Records“) 8、关闭连接 Mycn.Close() 9、用代码绑定数据集到显示控件 Me.TextBox1.DataBindings.Add(“Text“, myDataSet, “Records.编号“) Me.TextBox2.DataBindings.Add(“Text“, myDataSet, “Records.姓名“) Me.TextBox3.DataBindings.Add(“Text“, myDataSet, “Records.性别“) Me.Te

18、xtBox4.DataBindings.Add(“Text“, myDataSet, “Records.出生日期“) Me.TextBox5.DataBindings.Add(“Text“, myDataSet, “Records.家庭住址“) Me.TextBox6.DataBindings.Add(“Text“, myDataSet, “Records.手机“) Me.TextBox7.DataBindings.Add(“Text“, myDataSet, “Records.Email“) Me.TextBox8.DataBindings.Add(“Text“, myDataSet, “R

19、ecords.Oicq“),绝对路径,访问Access数据库显示,创建导航控件,访问Access数据库显示,创建导航控件的代码: 首条 Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Me.BindingContext(DataSet11, “职员基本信息表“).Position = 0 End Sub 最后一条 Private Sub Button7_Click(ByVal sender As System.Object, B

20、yVal e As System.EventArgs) Handles Button7.Click Me.BindingContext(DataSet11, “职员基本信息表“).Position = Me.BindingContext(DataSet11, “职员基本信息表“).Count - 1 End Sub 前一条 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.BindingContext(DataSet11,

21、“职员基本信息表“).Position -= 1 End Sub 下一条 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.BindingContext(DataSet11, “职员基本信息表“).Position += 1 End Sub,关于Command对象,Command对象的主要属性: 1、Connection属性:设置用于执行命令的Connection对象。 2、CommandText属性:设置被执行的SQL语句

22、。 下面两段代码的效果相同(声明命令对象有二种方法):,Dim sConnString As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:luo人力资源管理系统hrmbook.mdb;Persist Security Info=False“ Dim Mycn As New OleDbConnection(sConnString) Dim myCom As OleDbCommand 此方法声明可以不用关键字New,当然用也可以 Dim mySql As String mySql = “select sum(奖励金额) as 奖

23、金, 职员编号 from 职员奖励表“ Mycom = New OleDbCommand(mySql,Mycn),Dim sConnString As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:luo人力资源管理系统hrmbook.mdb;Persist Security Info=False“ Dim Mycn As New OleDbConnection(sConnString) Dim myCom As New OleDbCommand 此方法声明一定要用关键字New Dim mySql As String mySq

24、l = “select sum(奖励金额) as 奖金, 职员编号 from 职员奖励表“ Mycom.Connection = Mycn Mycom.CommandText = mySql,关于Command对象,Command对象的方法: 1、ExecuteNonQuery方法:执行一个SQL命令,但不返回结果,只返回一个值说明有多少行数据被处理。 2、ExecuteReader方法:执行一个SQL命令,并生成DataReader对象作为结果返回。使用该方法时要先创建DataReader对象用来获取数据。 案例见:DataBase.vb和frmSalary.vb,关于DataReader对

25、象,DataReader对象是基于连接的数据流,它一次只将一个记录导入内存,而不会将结果集的所有记录同时返回,因此可以避免耗费大量内存资源。 1、Read方法:读取DataReader对象的下一行记录。 详解:当DataReader对象首次打开时它被置于文件开始位置即第一行之前,当调用一次Read方法, DataReader才会移动到结果集的第一行处。以后每调用依次Read方法, DataReader都会移动到结果集的下一行处,直到Read方法返回False为止,表明此时查询无结果。 2、GetType方法:将指定列的值作为指定类型获取。例如:GetString方法表示将取得的字段数据设为字符

26、串 案例见: frmSalary.vb,DataReader对象举例1,DataReader对象举例2,Dim sConnString As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:luo人力资源管理系统hrmbook.mdb;Persist Security Info=False“ Dim Mycn As New OleDbConnection(sConnString) Dim myCom As OleDbCommand Mycn.Open() Dim mySql , strSQL As String mySql =

27、“select sum(奖励金额) as 奖金, 职员编号 from 职员奖励表“ Mycom=New OleDbCommand(mySql,Mycn) Dim dr As OleDbDataReader dr = Mycom.ExecuteReader While (dr.Read() Dim jine As Double = dr.GetDouble(0) Dim id As String = dr.GetString(1) strSQL = “update 月工资统计表 set 奖金=” + jine.ToString() + “ where 职 员编号=“ & id & “” End

28、While dr.Close() Mycom=New OleDbCommand(strSQL,Mycn) Mycom.ExecuteNonQuery() 注意:该案例只执行了月工资统计表最后一条记录的更新,如何完善程序?见DataBase.vb和frmSalary.vb(通过数组知识和事务知识),访问Access数据库增加,访问Access数据库增加,例子1:程序运行界面图,访问Access数据库修改,Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b

29、tnUpdate.Click Try Dim str As String = “update Records set 姓名=“ & Me.TextBox2.Text & “,性别=“ & Me.TextBox3.Text & “,出生日期=“ & Me.TextBox4.Text & “,家庭住址=“ & Me.TextBox5.Text & “,手机=“ & Me.TextBox6.Text & “,Email=“ & Me.TextBox7.Text & “,Oicq=“ & Me.TextBox8.Text & “ where 编号=“ & Me.TextBox1.Text & “ Di

30、m mycom As OleDb.OleDbCommand mycom = New OleDb.OleDbCommand(str, Me.OleDbConnection1) Me.OleDbConnection1.Open() mycom.ExecuteNonQuery() Me.DataSet11.Clear() Me.OleDbDataAdapter1.Fill(Me.DataSet11, “Records“) Me.OleDbConnection1.Close() MsgBox(“记录修改成功!“) Catch ex As Exception Me.OleDbConnection1.Cl

31、ose() MsgBox(ex.Message) End Try End Sub,修改记录时,主键字段不可更改,因此,该SQL语句有一个where条件语句,访问Access数据库删除,Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click Try Dim str As String = “delete from Records where 编号=“ & Me.TextBox1.Text & “ Dim mycom As OleD

32、b.OleDbCommand mycom = New OleDb.OleDbCommand(str, Me.OleDbConnection1) Me.OleDbConnection1.Open() mycom.ExecuteNonQuery() Me.DataSet11.Clear() Me.OleDbDataAdapter1.Fill(Me.DataSet11, “Records“) Me.OleDbConnection1.Close() MsgBox(“记录删除成功!“) Catch ex As Exception Me.OleDbConnection1.Close() MsgBox(ex

33、.Message) End Try End Sub,关于DataGridView控件,DataGridView控件具有极高的可配置性和可扩展性,它提供大量的属性、方法和事件,可以用来对该控件的外观和行为进行自定义。 当需要在Windows窗体应用程序中显示表格数据时,应首先考虑使用DataGridView控件,然后再考虑使用其他控件(例如DataGrid)。 一般设置两个属性: DataSource:某个数据集对象 DataMember:该数据集对象的某个表,关于DataGrid控件,DataGrid控件用于显示数据表中的数据,该控件可用来显示单个表,也可以显示多个不相关的表,也可以显示多个相

34、关的表。具体的用法详见“任务七”,若工具箱中找不到DataGrid控件,可以在“所用 Windows窗体”分组工具箱中,右键,然后选择“选择项”,在出现的窗口中,选择“.NET Framework组件”选项卡,找到“DataGrid”然后在其前面打勾。然后点“确定”。那么DataGrid就添加到工具箱中。,关于DataView,DataView类:表示用于排序、筛选、搜索和编辑的 表(DataTable )的可绑定数据的自定义视图。 创建 DataView 对象的方法: 方法一:使用 DataView 构造函数 Dim custDV As DataView = New DataView(cus

35、tDS.Tables(“Customers“) 方法二:创建对 DataTable 的 DefaultView 属性的引用 Dim custDV As DataView = custDS.Tables(“Customers“).DefaultView,关于DataView,DataView对象的属性: Sort属性:获取或设置 DataView 的一个或多个排序。 例:Dataview1.Sort = “Name Asc” Dataview1.Sort = “Name Desc” RowFilter属性:获取或设置用于筛选在 DataView 中查看哪些行的表达式。 例:Dataview1.

36、RowFilter = “Name like %陈%” RowStateFilter属性:获取或设置用于 DataView 中的行状态筛选器。 例: Dataview1. RowStateFilter = DataViewRowState.CurrentRows Dataview1. RowStateFilter = DataViewRowState. ModifiedOriginal _所有 Modified 行的 Original 行版本。,关于DataView的一个例子,若工具箱中找不到DataView控件,可以在“所用 Windows窗体”分组工具箱中,右键,然后选择“选择项”,在出现

37、的窗口中,选择“.NET Framework组件”选项卡,找到“DataView”然后在其前面打勾。然后点“确定”。那么DataView就添加到工具箱中。,关于DataView的一个例子,双击“DataView”控件后,在当前窗体下方会出现“DataView1”对象,在DataView1控件的属性窗口中,设置它的 Tabel属性:某个数据集对象某个表 接着把DataViewGrid控件的DataSource属性设置为DataView1。这样就可以使用DataView的属性:,课堂实训,实训1:创建一个Access数据库student,建一表Records,该表字段(字段类型均为文本,编号为主键):编号,姓名,性别,出生日期,家庭住址,手机,Email,Oicq。 在VB.NET环境中创建一个访问该数据库的系统(包括显示、修改、删除、增加和保存等功能)。如图所示界面。 实训2:利用数据库访问知识完善真实登录窗体frmlogin的代码,书面作业,工资管理系统 具体要求请看Word文档,补充内容,访问数据库的另外一种方法 具体例子及内容参考文件夹“任务三相关例子及代码”文件夹里的,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1