任务三访问Access数据.ppt

上传人:小飞机 文档编号:6547714 上传时间:2023-11-11 格式:PPT 页数:48 大小:1.27MB
返回 下载 相关 举报
任务三访问Access数据.ppt_第1页
第1页 / 共48页
任务三访问Access数据.ppt_第2页
第2页 / 共48页
任务三访问Access数据.ppt_第3页
第3页 / 共48页
任务三访问Access数据.ppt_第4页
第4页 / 共48页
任务三访问Access数据.ppt_第5页
第5页 / 共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语句。,预备知识结构化查询语言SQL,

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

4、库”,”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 StuInfo set name=“张三“,age=18 where id=005delete*from Stu

5、Info where id=18,使用Access创建数据库,操作步骤:1、启动Access办公软件2、文件/新建3、双击“使用设计器创建表”4、设置主键:右击某个字段名,选“主键”5、添加数据:双击表名,直接添加数据,保存,访问Access数据库显示,访问Access数据库显示,方法一:在Visual Studio.NET中建立连接1、从工具箱中的“数据”标签中双击OleDbDataAdapter对象 如果工具箱中的“数据”标签中没有OleDbDataAdapter对象,则可以右击“数据”工具箱中某控件例如DataSet控件,从弹出的快捷菜单中执行选择项命令(如图),打开“选择工具箱项”对话

6、框,选择“.NET Framework组件”选项卡,从中选择OleDbCommand、OleDbConnection、OleDbDataAdapter这三个组件(在这三项组件的名称前的方框内打勾即可)。单击“确定”按钮,这三个组件就被添加到工具箱中了。,方法一:在Visual Studio.NET中建立连接,接下来,出现“数据适配器配置向导”对话框,点击“新建连接”按钮。出现“添加连接”对话框。可以执行“更改”选择数据源的类型。这里选择“其他”,然后点“确定”,接着,在OLE DB提供程序下选择:Microsoft Jet 4.0 OLE DB Provider,方法一:在Visual Stu

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

8、,然后点“添加”,把要用的字段依次打勾。然后点“确定”。,方法一:在Visual Studio.NET中建立连接,回到如图对话框,点“下一步”,点“完成”。最终,窗体下方生成“OleDbDataAdapter1”和“OleDbConnection1”两个对象(如图)。,3,方法一:在Visual Studio.NET中建立连接,右键“OleDbDataAdapter1”,选择“生成数据集”,点“确定”后,生成数据集对象“DataSet11”,3,方法一:在Visual Studio.NET中建立连接,2、将数据源绑定到一个或多个显示控件上问题:什么样的控件可以做为数据源的显示控件?一般来说,凡

9、是具有DataBindings属性的控件都可做显示控件,典型的例子:TextBox、Label、ComboBox等控件,方法一:在Visual Studio.NET中建立连接,将数据源绑定控件的操作如下:在属性窗口中设置文本框的DataBindings属性打开DataBindings分类,单击Text属性,单击下拉箭头选择某个数据集对象中某个表的某个字段,方法一:在Visual Studio.NET中建立连接,3、编写一部分代码关键代码:利用数据适配器给数据集手动加载数据 OleDbDataAdapter1.Fill(Dataset11)上述代码可以放在某个命令按钮的单击事件过程中,也可放在窗

10、体的Load事件过程中,方法一:在Visual Studio.NET中建立连接,课堂实训,访问Access数据库显示,方法二:使用较多的代码ADO.NET对象结构,方法二:使用较多的代码,ADO.NET对象功能(访问数据库时要用到的对象及步骤)1、Connection对象负责连接数据库2、Command对象负责对数据库下达SQL命令3、在ADO.NET中,介于Dataset和Connection对象之间还有一个对象DataAdapter,负责传递数据。4、Dataset对象用来保存所查询到的数据记录,是一种非连接的数据缓存。,方法二:使用较多的代码,创建Connection对象时,可以使用2个

11、类:1、SqlConnection类:管理SQL Server 7.0或以上数据源的连接,该类位于System.Data.Sqlclient 命名空间。2、OledbConnection类:管理可通过OLEDB访问的数据源的连接,例如 Access数据库。该类位于System.Data.OLEDB 命名空间。同样,创建Command对象和DataAdapter对象时都有2个类可以选择,要看访问的数据源的类型。,方法二:使用较多的代码,连接好数据库后,用代码绑定数据集到显示控件,如下所示:Me.TxtName.DataBindings.Add(“text”,myDataSet,“职员基本信息表.

12、姓名)Me.TxtID.DataBindings.Add(“text”,myDataSet,“职员基本信息表.职员编号)其他要注意的地方:在类定义的开头要指出数据访问对象所在的命名空间:,方法二:使用较多的代码(例子),例1:用较多代码访问数据库(请注意访问数据库的步骤,访问数据库时使用的是相对路径【数据库文件和可执行文件在同一个文件夹里】),数据库为Student.mdb,有一个Records表,该表字段为:编号,姓名,性别,出生日期,家庭住址,手机,Email,Oicq。,方法二:使用较多的代码(例子),例2:请注意定义连接等对象的代码和例1有所不同。说明:本例子并没有用到命令对象,请注意

13、连接对象数据适配器对象的定义和赋值 1、声明连接字符串(访问该数据库时用的是绝对路径)Dim sConnString As String=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:VS2005ProjectWindowsApplication7binDebugStudent.mdb;Persist Security Info=False 2、声明连接对象 Dim Mycn As New OleDbConnection(sConnString)3、声明命令对象 Dim myCommand As OleDbCommand 4、声明数据适配器对象

14、Dim myDataAdapter As New OleDbDataAdapter 5、声明数据集对象 Dim myDataSet As New DataSet 6、打开连接 Mycn.Open()7、通过数据适配器填充已连接的数据源的数据到数据集中(一个数据适配器只能填充一张表)Dim mySql As String mySql=select*from Records myDataAdapter=New OleDbDataAdapter(mySql,Mycn)myDataAdapter.Fill(myDataSet,Records)8、关闭连接 Mycn.Close()9、用代码绑定数据集到

15、显示控件 Me.TextBox1.DataBindings.Add(Text,myDataSet,Records.编号)Me.TextBox2.DataBindings.Add(Text,myDataSet,Records.姓名)Me.TextBox3.DataBindings.Add(Text,myDataSet,Records.性别)Me.TextBox4.DataBindings.Add(Text,myDataSet,Records.出生日期)Me.TextBox5.DataBindings.Add(Text,myDataSet,Records.家庭住址)Me.TextBox6.Data

16、Bindings.Add(Text,myDataSet,Records.手机)Me.TextBox7.DataBindings.Add(Text,myDataSet,Records.Email)Me.TextBox8.DataBindings.Add(Text,myDataSet,Records.Oicq),绝对路径,访问Access数据库显示,创建导航控件,访问Access数据库显示,创建导航控件的代码:首条Private Sub Button6_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles B

17、utton6.Click Me.BindingContext(DataSet11,职员基本信息表).Position=0 End Sub最后一条 Private Sub Button7_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button7.Click Me.BindingContext(DataSet11,职员基本信息表).Position=Me.BindingContext(DataSet11,职员基本信息表).Count-1 End Sub 前一条 Private Sub Button

18、1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click Me.BindingContext(DataSet11,职员基本信息表).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+=

19、1 End Sub,关于Command对象,Command对象的主要属性:1、Connection属性:设置用于执行命令的Connection对象。2、CommandText属性:设置被执行的SQL语句。下面两段代码的效果相同(声明命令对象有二种方法):,Dim sConnString As String=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:luo人力资源管理系统hrmbook.mdb;Persist Security Info=FalseDim Mycn As New OleDbConnection(sConnString)Dim m

20、yCom As OleDbCommand 此方法声明可以不用关键字New,当然用也可以Dim mySql As StringmySql=select sum(奖励金额)as 奖金,职员编号 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=FalseDim Mycn As New OleDbConnection(sCon

21、nString)Dim myCom As New OleDbCommand 此方法声明一定要用关键字NewDim mySql As StringmySql=select sum(奖励金额)as 奖金,职员编号 from 职员奖励表“Mycom.Connection=MycnMycom.CommandText=mySql,关于Command对象,Command对象的方法:1、ExecuteNonQuery方法:执行一个SQL命令,但不返回结果,只返回一个值说明有多少行数据被处理。2、ExecuteReader方法:执行一个SQL命令,并生成DataReader对象作为结果返回。使用该方法时要先创

22、建DataReader对象用来获取数据。案例见:DataBase.vb和frmSalary.vb,关于DataReader对象,DataReader对象是基于连接的数据流,它一次只将一个记录导入内存,而不会将结果集的所有记录同时返回,因此可以避免耗费大量内存资源。1、Read方法:读取DataReader对象的下一行记录。详解:当DataReader对象首次打开时它被置于文件开始位置即第一行之前,当调用一次Read方法,DataReader才会移动到结果集的第一行处。以后每调用依次Read方法,DataReader都会移动到结果集的下一行处,直到Read方法返回False为止,表明此时查询无结

23、果。2、GetType方法:将指定列的值作为指定类型获取。例如:GetString方法表示将取得的字段数据设为字符串案例见: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=FalseDim Mycn As New OleDbConnection(sConnString)Dim myCom As OleDbCommandM

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

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

26、andles Button3.Click Me.BindingContext(DataSet11,职员基本信息表).AddNew()End Sub Private Sub Button5_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button5.Click Dim sql As String=insert into 职员基本信息表(姓名,职员编号)values(&TextBox1.Text&,&TextBox2.Text&)mycommand=New System.Data.OleDb.Ole

27、DbCommand(sql,OleDbConnection1)OleDbConnection1.Open()mycommand.ExecuteNonQuery()OleDbConnection1.Close()End Sub,例子2,步骤:1、添加一空记录 2、录入内容后保存到数据库,访问Access数据库修改,Private Sub btnUpdate_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnUpdate.Click Try Dim str As String=update Reco

28、rds 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&Dim mycom As OleDb.OleDbCommand mycom=New OleDb.OleDbCommand(str,Me.OleDbConnection1)Me.OleDbConnection

29、1.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.Message)End Try End Sub,修改记录时,主键字段不可更改,因此,该SQL语句有一个where条件语句,例子1,访问Access数据库修改,Private Sub Button8_Cl

30、ick(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button8.ClickDim sql As String=update 职员基本信息表 set 姓名=&TextBox1.Text&,职员编号=&TextBox2.Text&where 职员编号=&TextBox2.Text&mycommand=New System.Data.OleDb.OleDbCommand(sql,OleDbConnection1)OleDbConnection1.Open()mycommand.ExecuteNonQuery(

31、)OleDbConnection1.Close()End Sub,例子2,访问Access数据库删除,例子1,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 OleDb.OleDbCommand mycom=New OleDb.OleDbCommand(str,M

32、e.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.Message)End Try End Sub,访问Access数据库删除,Private Sub Button4_Click(

33、ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button4.Click Dim sql As String=delete*from 职员基本信息表 where 职员编号=&TextBox2.Text&Dim curPos As Integer=Me.BindingContext(DataSet11,职员基本信息表).Position mycommand=New System.Data.OleDb.OleDbCommand(sql,OleDbConnection1)OleDbConnection1.Open(

34、)myCommand.ExecuteNonQuery()DataSet11.Clear()OleDbDataAdapter1.Fill(DataSet11,职员基本信息表)If curPos=Me.BindingContext(DataSet11,职员基本信息表).Count-1 Then curPos=Me.BindingContext(DataSet11,职员基本信息表).Count-1 End If Me.BindingContext(DataSet11,职员基本信息表).Position=curPos OleDbConnection1.Close()End Sub,例子2,关于Data

35、Grid控件,DataGrid控件用于显示数据表中的数据,该控件可用来显示单个表,也可以显示多个不相关的表,也可以显示多个相关的表。具体的用法详见“任务七”,若工具箱中找不到DataGrid控件,可以在“所用 Windows窗体”分组工具箱中,右键,然后选择“选择项”,在出现的窗口中,选择“.NET Framework组件”选项卡,找到“DataGrid”然后在其前面打勾。然后点“确定”。那么DataGrid就添加到工具箱中。,关于DataGridView控件,DataGridView控件具有极高的可配置性和可扩展性,它提供大量的属性、方法和事件,可以用来对该控件的外观和行为进行自定义。当需要

36、在Windows窗体应用程序中显示表格数据时,应首先考虑使用DataGridView控件,然后再考虑使用其他控件(例如DataGrid)。一般设置两个属性:DataSource:某个数据集对象 DataMember:该数据集对象的某个表,关于DataView,DataView类:表示用于排序、筛选、搜索和编辑的 表(DataTable)的可绑定数据的自定义视图。创建 DataView 对象的方法:方法一:使用 DataView 构造函数 Dim custDV As DataView=New DataView(custDS.Tables(Customers)方法二:创建对 DataTable 的

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

38、 中的行状态筛选器。例:Dataview1.RowStateFilter=DataViewRowState.CurrentRowsDataview1.RowStateFilter=DataViewRowState.ModifiedOriginal _所有 Modified 行的 Original 行版本。,关于DataView的一个例子,若工具箱中找不到DataView控件,可以在“所用 Windows窗体”分组工具箱中,右键,然后选择“选择项”,在出现的窗口中,选择“.NET Framework组件”选项卡,找到“DataView”然后在其前面打勾。然后点“确定”。那么DataView就添加

39、到工具箱中。,关于DataView的一个例子,双击“DataView”控件后,在当前窗体下方会出现“DataView1”对象,在DataView1控件的属性窗口中,设置它的Tabel属性:某个数据集对象某个表接着把DataViewGrid控件的DataSource属性设置为DataView1。这样就可以使用DataView的属性:,作业,实训1:创建一个Access数据库,建一表,该表字段(字段类型均为文本,编号为主键):编号,姓名,性别,出生日期,家庭住址,手机,Email,Oicq。在VB.NET环境中创建一个访问该数据库的系统(包括显示、修改、删除、增加和保存等功能)。如图所示界面。实训2:利用数据库访问知识完善真实登录窗体frmlogin的代码,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号