1、实践考核类课程(实践考核类课程(VB.NETVB.NET)东北大学软件学院东北大学软件学院第八章第八章 Visual Visual Basic.NETBasic.NET 数据库技术数据库技术 主要内容:主要内容:8.1 ADO.NET概述概述 8.2 连接数据源连接数据源 8.3 使用使用DataReader检索数据检索数据 8.4 使用存储过程使用存储过程 8.5 使用使用DataSet和和DataAdapter检索数据检索数据 8.6 使用使用DataGrid控件控件 8.1 ADO.NET8.1 ADO.NET概述概述 ADO.NET也称做也称做.NET的的ActiveX数据对象,数据对
2、象,负责通过负责通过ODBC或者其它专业的信道连接到外或者其它专业的信道连接到外部数据源。部数据源。访问数据库中的数据分为访问数据库中的数据分为3层处理模型:层处理模型:建立到数据源的连接。建立到数据源的连接。通过连接执行通过连接执行SQL命令命令 在数据可用的时候处理在数据可用的时候处理SQL命令返回的数据。命令返回的数据。8.1 ADO.NET8.1 ADO.NET概述概述.NET数据提供者:数据提供者:.NET知道其工作知道其工作方式的数据源。这些数据通过方式的数据源。这些数据通过OLE和和.NET相互协作。相互协作。.NET数据提供者的名数据提供者的名字就是所使用的数据库的名字:字就是
3、所使用的数据库的名字:SQL Server,Oracle,Acess等。等。8.1 ADO.NET8.1 ADO.NET概述概述 ADO.NET数据提供者数据提供者提供者提供者提供者在提供者在.NET中的名称中的名称命名空间命名空间SQL ServerSQLOLEDESystem.Data.SqlClientOracleMSDAORASystem.Data.OleDbAccess2000和和Access2002Microsoft.Jet.OLEDE.4.0System.Data.OleDbAccess97Microsoft.Jet.OLEDE.3.5System.Data.OleDb8.1 A
4、DO.NET8.1 ADO.NET概述概述 ADO.NET数据对象数据对象类类System.Data.OleDb中的类名中的类名SytemData.SqlClient中中的名称的名称ConnectionOleDbConnectionSqlConnectionDataAdapterOleDbDataReaderSqlDataReaderCommandOleDbCommandSqlCommandDataReaderOleDbDataReaderSqlDataReaderSystemData中的中的DataSetDataSetDataSet8.2 8.2 连接数据源连接数据源 连接数据源的步骤:连接
5、数据源的步骤:1.通过创建一个新文本文件来创建一个空的通过创建一个新文本文件来创建一个空的Mircosoft Data Link文件,然后把这个文件的扩展名改文件,然后把这个文件的扩展名改成成udl。2.双击这个新文件,在弹出的对话框中可以创建双击这个新文件,在弹出的对话框中可以创建和编辑数据库的连接信息。和编辑数据库的连接信息。3.选取数据提供者:选取数据提供者:如果是如果是Access数据库,选择数据库,选择Microsoft Jet4.0 provider。如果是如果是SQL Sever或者或者MSDE数据库,选择数据库,选择Microsoft OLEDB Provider for SQ
6、L Server。8.2 8.2 连接数据源连接数据源 4.设置连接属性。设置连接属性。5.进行连接测试。进行连接测试。6.建立一个连接的时候,需要建立一个建立一个连接的时候,需要建立一个SystemData.OleDB.OLEDBConnection实例或者实例或者System.Data.SqlClient.SQLConnection对象。对象。7.调用调用OLEDBConnection的的Open方法建立方法建立和数据库的连接。和数据库的连接。8.3 8.3 使用使用DataReaderDataReader检索数据检索数据 DataReader是一个用来存储表的对象,它允是一个用来存储表的
7、对象,它允许使用其许使用其Read方法来顺序读取数据。方法来顺序读取数据。在该对象中,数据是只读的,并只可以向前在该对象中,数据是只读的,并只可以向前读取。读取。Read方法可以使光标视图中的指针向下一行方法可以使光标视图中的指针向下一行移动,确保行中各列的数据可以被一组移动,确保行中各列的数据可以被一组Get方法获取。方法获取。8.3 8.3 使用使用DataReaderDataReader检索数据检索数据OleDbConnection数据库OleDbConnection包含单个Select语句Data Reader第一层:打开连接第二层:运行SQL Select命令SQL语句得结果,模式和
8、数据被放在DataReader中用用DataReader对象管理对象管理Select查询查询8.4 8.4 使用存储过程使用存储过程 使用存储过程的原因:创建一个过程,使用存储过程的原因:创建一个过程,把它存储在数据库中,因为事先知道把它存储在数据库中,因为事先知道有这个过程,所以可以提前编译它,有这个过程,所以可以提前编译它,以便在应用程序中使用。以便在应用程序中使用。8.4 8.4 使用存储过程使用存储过程 创建存储过程创建存储过程 可以使用可以使用Visual Studio.NET中的工具或中的工具或SQLSever的的Enterprise Manager中的工具。中的工具。从技术上看可
9、以使用第三方工具或编程实现。从技术上看可以使用第三方工具或编程实现。存储过程可以是一个存储过程可以是一个SQL语句,也可以是一组复语句,也可以是一组复杂的语句。杂的语句。T-SQL支持分支、循环和其它变量声明,这将有支持分支、循环和其它变量声明,这将有助于编写出某些非常复杂的存储过程代码。助于编写出某些非常复杂的存储过程代码。8.4 8.4 使用存储过程使用存储过程 调用存储过程调用存储过程 创建一个创建一个SqlCommand对象。对象。设置设置CommandType属性。属性。添加与存储过程本身匹配的参数。添加与存储过程本身匹配的参数。创建一个创建一个SqlDataAdapter,填充某种
10、,填充某种结果对象。结果对象。8.5 8.5 使用使用DataSetDataSet和和DataAdapterDataAdapter检索数据检索数据 DataSet类的层次结构类的层次结构System.Object Sytem.ComponentModel.MarshalValueComponent System.Data.DataSet8.5 8.5 使用使用DataSetDataSet和和DataAdapterDataAdapter检索数据检索数据 DataSet对象重要的公有属性对象重要的公有属性属性属性说明说明DataSetName获取或设置数据集的名称获取或设置数据集的名称Enforc
11、eConstraints 获取或设置是否遵循约束规则获取或设置是否遵循约束规则HasErrors指出在所有表的所有行内是否有错误指出在所有表的所有行内是否有错误Relations获取链接表的关系对象获取链接表的关系对象Tables获取数据集中的表获取数据集中的表8.5 8.5 使用使用DataSetDataSet和和DataAdapterDataAdapter检索数据检索数据方法方法说明说明AcceptChanges接受(提交)对数据集所做的修改接受(提交)对数据集所做的修改Clear通过删除所有表内的所有行来清空数据集通过删除所有表内的所有行来清空数据集Copy复制数据集复制数据集GetCh
12、anges返回保护对象当前数据集所做所有修改的数据集返回保护对象当前数据集所做所有修改的数据集GetXml获取用获取用XML表示的数据集中的数据表示的数据集中的数据GetXmlSchema获取数据集的获取数据集的XSD架构架构HasChanges指出数据集是否据偶仍然未被提交的修改指出数据集是否据偶仍然未被提交的修改Merge把该数据集与另一个数据集合并把该数据集与另一个数据集合并ReadXml把数据从把数据从XML读入数据集读入数据集ReadXmlScema把把XML架构读入数据集架构读入数据集RejectChanges回滚自数据集创建以来或自最后一次调用回滚自数据集创建以来或自最后一次调用
13、AcceptChanges以来对数据集所做以来对数据集所做的修改的修改Reset把数据集重新设置到其原来状态把数据集重新设置到其原来状态WriteXml把数据集架构和数据写入把数据集架构和数据写入XMLWriteXmlShcema把数据架构写入把数据架构写入XML DataAdapter对象重要的公有方法对象重要的公有方法8.5 8.5 使用使用DataSetDataSet和和DataAdapterDataAdapter检索数据检索数据 DataSet对象可以保存多个数据表,隐对象可以保存多个数据表,隐藏,每个藏,每个DataSet对象都有对象都有DataTable对象集合组成,可以用对象集合
14、组成,可以用DataRelation对对象把他们相互连接起来。象把他们相互连接起来。8.5 8.5 使用使用DataSetDataSet和和DataAdapterDataAdapter检索数据检索数据 DataAdapter类是数据适配器的基础类,在类是数据适配器的基础类,在数据提供程序中它是数据集和数据库之间数据提供程序中它是数据集和数据库之间的桥梁。的桥梁。DataAdapter类的层次结构是:类的层次结构是:System.Object System.MarshalByRefObject System.ComponentModel.Component System.Data.Common.
15、DataAdapter8.5 8.5 使用使用DataSetDataSet和和DataAdapterDataAdapter检索数据检索数据 DataAdapter对象重要的公有属性对象重要的公有属性属性属性说明说明AcceptChangesDuringFill获取或设置数据行添加到表之后获取或设置数据行添加到表之后是否调用其是否调用其AccepChanges方法方法TableMappings获取源表和数据表之间的映射获取源表和数据表之间的映射8.6 8.6 使用使用DataGridDataGrid控件控件 DataGrid空间的目的是显示在可滚动网格空间的目的是显示在可滚动网格中通过中通过ADO.NET获得的数据。获得的数据。DataGrid空间直接从空间直接从Control类继承。类继承。