




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6 6章章 ADO.NETADO.NET数据库访问技术数据库访问技术6.1 ADO.NET6.1 ADO.NET概述概述 ADO.NETADO.NET是一组向是一组向.NET.NET程序员公开数据访问服务的类。程序员公开数据访问服务的类。ADO.NETADO.NET为创建分布式数据共享应用程序提供了一组丰富为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、的组件。它提供了对关系数据、XMLXML和应用程序数据的访和应用程序数据的访问,因此是问,因此是.NET Framework.NET Framework中不可缺少的一部分。中不可缺少的一部分。 ADO.NETADO.N
2、ET支持多种开发需求,包括创建由应用程序、支持多种开发需求,包括创建由应用程序、工具、语言或工具、语言或InternetInternet浏览器使用的前端数据库客户端浏览器使用的前端数据库客户端和中间层业务对象。和中间层业务对象。一、一、ADO.NETADO.NET结构结构 1 1、.NET Framework.NET Framework数据提供程序数据提供程序 .NET Framework.NET Framework数据提供程序是专门为数据处理以及数据提供程序是专门为数据处理以及快速地只进、只读访问数据而设计的组件。包含以下对快速地只进、只读访问数据而设计的组件。包含以下对象:象: Conne
3、ctionConnection对象对象 ConnectionConnection对象提供与数据源的连接。对象提供与数据源的连接。 CommandCommand对象对象 CommandCommand对象用来执行访问数据库的命令,并从数据源对象用来执行访问数据库的命令,并从数据源中返回结果。中返回结果。 DataReaderDataReader对象对象 DataReaderDataReader对象用于从数据库中检索对象用于从数据库中检索只读、只进只读、只进的数据的数据流。流。 DataAdapterDataAdapter对象对象 DataAdapterDataAdapter对象提供连接对象提供连接
4、DataSetDataSet对象和数据源的桥对象和数据源的桥梁。梁。 DataAdapter DataAdapter对象使用对象使用CommandCommand对象在数据源中执行对象在数据源中执行SQLSQL命令,以便将数据加载到命令,以便将数据加载到DataSetDataSet中,并使对中,并使对DataSetDataSet中中数据的更改与数据源保持一致。数据的更改与数据源保持一致。 TransactionTransaction对象对象 TransactionTransaction对象用于事务处理。对象用于事务处理。 ParameterParameter对象对象 ParameterParam
5、eter对象用于向对象用于向CommandCommand对象传递命令参数。对象传递命令参数。2 2、DataSetDataSet对象对象 DataSetDataSet对象专门为独立于任何数据源的数据访问而设对象专门为独立于任何数据源的数据访问而设计。它可以用于多种不同的数据源,用于计。它可以用于多种不同的数据源,用于XMLXML数据,或用于数据,或用于管理应用程序本地的数据。管理应用程序本地的数据。DataSet DataSet 包含一个或多个包含一个或多个 DataTable DataTable 对象的集合,这些对象由数据行和数据列以及对象的集合,这些对象由数据行和数据列以及有关有关Data
6、TableDataTable对象中数据的主键、外键、约束和关系信息对象中数据的主键、外键、约束和关系信息组成。组成。 .NET Framework.NET Framework数据提供程序和数据提供程序和DataSetDataSet对象的关系如对象的关系如图图6.16.1所示。所示。图图6.1 ADO.NET6.1 ADO.NET结构结构 DataTableDataTable对象对象 DataTableDataTable对象代表内存中数据一个表,它由许多对象代表内存中数据一个表,它由许多DataRowDataRow对象和对象和DataColumnDataColumn对象组成。对象组成。 Data
7、RowDataRow对象对象 DataRowDataRow对象表示对象表示DataTableDataTable中的一行数据。中的一行数据。 DataColumnDataColumn对象对象 DataColumnDataColumn对象表示对象表示DataTableDataTable一列。一列。二、二、ADO.NETADO.NET相关的命名空间相关的命名空间 System.Data.Odbc System.Data.Odbc 定义了基于定义了基于ODBC .NET FrameworkODBC .NET Framework数据提供程序访问数据提供程序访问ODBCODBC数据源的类集合。数据源的类集
8、合。 System.Data.OleDbSystem.Data.OleDb 定义了基于定义了基于OLE DB .NET FrameworkOLE DB .NET Framework数据提供程序访问数据提供程序访问OLE DBOLE DB数据源的类集合。数据源的类集合。 System.Data.SqlClientSystem.Data.SqlClient 定义了基于定义了基于SQL Server .NET FrameworkSQL Server .NET Framework数据提供程序访数据提供程序访问问SQL ServerSQL Server数据源的类集合。数据源的类集合。 System.Da
9、ta.OracleClientSystem.Data.OracleClient 定义了基于定义了基于Oracle .NET FrameworkOracle .NET Framework数据提供程序访问数据提供程序访问OracleOracle数据源的类集合。数据源的类集合。 System.Data.SqlTypesSystem.Data.SqlTypes 为为 SQL Server 2005 SQL Server 2005 中的本机数据类型提供类。这些类中的本机数据类型提供类。这些类为为 .NET Framework .NET Framework 公共语言运行库公共语言运行库 (CLR) (CL
10、R) 所提供的数据所提供的数据类型提供了一种更为安全和快速的替代项。类型提供了一种更为安全和快速的替代项。6.2 6.2 数据连接对象数据连接对象ConnectionConnection一、一、ConnectionConnection对象对象 ConnectionConnection对象代表了与数据源的连接。它代表与数据源对象代表了与数据源的连接。它代表与数据源进行的唯一会话。如果是客户端进行的唯一会话。如果是客户端/ /服务器数据库系统,该对象服务器数据库系统,该对象可以等价于到服务器的实际网络连接。可以等价于到服务器的实际网络连接。 1 1、常用属性、常用属性 ConnectionStri
11、ngConnectionString ConnectionString ConnectionString属性用来获取或设置用于打开数据库的属性用来获取或设置用于打开数据库的字符串。字符串。 ConnectionTimeout ConnectionTimeout ConnectionTimeout ConnectionTimeout属性属性用来获取在尝试建立连接时终止用来获取在尝试建立连接时终止尝试,并生成错误之前所等待的时间。默认值为尝试,并生成错误之前所等待的时间。默认值为1515秒。秒。 DataBaseDataBase DataBase DataBase属性用来获取当前数据库或连接打开后
12、要使用属性用来获取当前数据库或连接打开后要使用的数据库的名称。的数据库的名称。 DataSource DataSource DataSource DataSource属性用来获取数据源的服务器名或文件名。属性用来获取数据源的服务器名或文件名。 StateState State State属性用来获取连接的当前状态。该属性的取值有:属性用来获取连接的当前状态。该属性的取值有:BrokenBroken、ClosedClosed、ConnectingConnecting、ExecutingExecuting、FetchingFetching、OpenOpen。 2 2、常用方法、常用方法 OpenO
13、pen Open Open方法使用方法使用 ConnectionStringConnectionString所指定的属性设置所指定的属性设置打开数据库连接。打开数据库连接。 格式:格式: ConnectionConnection对象名对象名.Open();.Open(); Close Close Close Close方法用于关闭到数据库的连接。方法用于关闭到数据库的连接。 格式:格式: ConnectionConnection对象名对象名.Close();.Close(); ChangeDatabase ChangeDatabase ChangeDatabase ChangeDatabase
14、方法为打开的方法为打开的ConnectionConnection更改当前更改当前数据库。数据库。 格式:格式: ConnectionConnection对象名对象名.ChangeDatabase(.ChangeDatabase(数据库名数据库名) ) CreateCommand CreateCommand CreateCommand CreateCommand方法创建并返回一个与该方法创建并返回一个与该ConnectionConnection对象关联的对象关联的Command Command 对象。对象。 格式:格式: ConnectionConnection对象名对象名.CreateComm
15、and().CreateCommand() BeginTransaction BeginTransaction 开始数据库事务。开始数据库事务。 格式:格式: Connection Connection对象名对象名.BeginTransaction() .BeginTransaction() Connection Connection对象名对象名.BeginTransaction(.BeginTransaction(事务名称事务名称) )二、创建二、创建ConnectionConnection对象对象 1 1、连接到、连接到SQL ServerSQL Server SqlConnection
16、SqlConnection类用于声明和创建连接到类用于声明和创建连接到SQL ServerSQL Server数据库的数据库的ConnectionConnection对象,其构造函数为:对象,其构造函数为: SqlConnection()SqlConnection() SqlConnection(connectionString)SqlConnection(connectionString) 其中,其中,connectionStringconnectionString为为stringstring类型,是连接到服类型,是连接到服务器的字符串。务器的字符串。 例例6-1 6-1 连接一个连接一个S
17、QL ServerSQL Server数据库数据库, ,如果连接成功,如果连接成功,则输出则输出“连接成功连接成功”信息,否则输出异常信息。信息,否则输出异常信息。 2 2、连接到、连接到OLE DBOLE DB数据源数据源 OleDbConnectionOleDbConnection类用于声明和创建连接到类用于声明和创建连接到OLE DBOLE DB数据数据源的源的ConnectionConnection对象,其构造函数为:对象,其构造函数为: OleDbConnection()OleDbConnection() OleDbConnection(connectionString)OleDbC
18、onnection(connectionString) 其中,其中,connectionStringconnectionString为为stringstring类型,是连接到类型,是连接到OLE DBOLE DB数据源的字符串。数据源的字符串。 例例6-2 6-2 连接一个连接一个SQL ServerSQL Server数据库数据库, ,如果连接成功,则如果连接成功,则输出输出“连接成功连接成功”信息,否则输出异常信息。信息,否则输出异常信息。 OLE DBOLE DB数据源可以是任何关系数据库,不同的关系数数据源可以是任何关系数据库,不同的关系数据库,据库,OLE DBOLE DB提供程序不
19、同。表提供程序不同。表6-16-1列举了常用关系数据列举了常用关系数据库的库的OLE DBOLE DB提供程序。提供程序。关系数据库关系数据库OLE DBOLE DB提供程序提供程序SQL ServerSQL ServerSQLOLEDBSQLOLEDBORACLEORACLE MSDAORA MSDAORA ACCESSACCESSMicrosoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 表表6-16-1常用的常用的OLE DBOLE DB提供程序提供程序 3 3、连接到、连接到ODBCODBC数据源数据源 OdbcConnectionOdbcConnec
20、tion类用于声明和创建连接到类用于声明和创建连接到ODBCODBC数据数据源的源的ConnectionConnection对象,其构造函数为:对象,其构造函数为: OdbcConnection()OdbcConnection() OdbcConnection(connectionString)OdbcConnection(connectionString) 其中,其中,connectionStringconnectionString为为stringstring类型,是连接到类型,是连接到ODBCODBC数据源的字符串。数据源的字符串。 例例6-3 6-3 连接一个连接一个SQL Server
21、SQL Server数据库数据库, ,如果连接成功,则如果连接成功,则输出输出“连接成功连接成功”信息,否则输出异常信息。信息,否则输出异常信息。 ODBCODBC数据源可以是任何关系数据库,也可以是数据源可以是任何关系数据库,也可以是ExcelExcel和和文本文件。不同的文本文件。不同的ODBCODBC数据源,连接字符串不同,下面列数据源,连接字符串不同,下面列举出常见的举出常见的ODBCODBC数据源的连接字符串:数据源的连接字符串: SQL ServerSQL Server数据库数据库 “Driver=SQL Server;Server=Driver=SQL Server;Server
22、=服务器名服务器名; ; Trusted_Connection=Yes;Database=Trusted_Connection=Yes;Database=数据库名数据库名; ; OracleOracle数据库数据库 Driver=Microsoft ODBC for Oracle;Server= Driver=Microsoft ODBC for Oracle;Server=服务器服务器名名;Persist Security Info=False;Trusted_Connection= ;Persist Security Info=False;Trusted_Connection= YesYe
23、s AccessAccess数据库数据库 “ “Driver=Microsoft Access Driver (Driver=Microsoft Access Driver (* *.mdb);DBQ=.mdb);DBQ=数数据库文件名据库文件名 ExcelExcel文件文件 “ “Driver=Microsoft Excel Driver (Driver=Microsoft Excel Driver (* *.xls);DBQ=.xls);DBQ=文文件名件名 文本文件文本文件 “ “Driver=Microsoft Text Driver (Driver=Microsoft Text Dr
24、iver (* *.txt; .txt; * *.csv); .csv); DBQ=DBQ=文件路径文件路径 DSNDSN “DSN=“DSN=数据源名数据源名” 4 4、连接到、连接到OracleOracle数据源数据源 OracleConnectionOracleConnection类用于声明和创建连接到类用于声明和创建连接到OracleOracle数数据源的据源的ConnectionConnection对象,其构造函数为:对象,其构造函数为: OracleConnection()OracleConnection() OracleConnection(connectionString)Or
25、acleConnection(connectionString) 其中,其中,connectionStringconnectionString为为stringstring类型,是连接到类型,是连接到OracleOracle数据源的字符串。数据源的字符串。 例例6-4 6-4 连接一个连接一个OracleOracle数据库数据库, ,如果连接成功,则输出如果连接成功,则输出“连接成功连接成功”信息,否则输出异常信息。信息,否则输出异常信息。三、关闭三、关闭ConnectionConnection对象对象 关闭关闭ConnectionConnection对象需要调用对象需要调用CloseClose
26、或或DisposeDispose方法。方法。6.3 6.3 执行数据库命令对象执行数据库命令对象CommandCommand一、一、CommandCommand对象对象 CommandCommand对象用来执行访问数据库的命令。对象用来执行访问数据库的命令。 1 1、常见属性、常见属性 Connection Connection 获取或设置获取或设置CommandCommand对象使用的对象使用的ConnectionConnection对象。对象。 CommandTimeoutCommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等获取或设置在终止执行命令的尝试并生成错误
27、之前的等待时间。默认值为待时间。默认值为3030秒。秒。 CommandTextCommandText 获取或设置要对数据源执行的命令。该命令可以是获取或设置要对数据源执行的命令。该命令可以是SQLSQL语语句、存储过程名称或表名。句、存储过程名称或表名。 CommandType CommandType 获取或设置一个值,该值指示获取或设置一个值,该值指示CommandTextCommandText属性的命属性的命令类型。该属性的值可以是:令类型。该属性的值可以是:TextText、TableDirectTableDirect或或StoredProcedureStoredProcedure之一
28、。在之一。在C#C#中中CommandTypeCommandType枚举定义了枚举定义了CommandTypeCommandType的取值。的取值。 ParametersParameters 获取获取ParameterCollectionParameterCollection集合。参见集合。参见SQLSQL参数传递。参数传递。 Transaction Transaction 获取或设置获取或设置TransactionTransaction对象。参见事务处理。对象。参见事务处理。 2 2、常见方法、常见方法 ExecuteNonQuery ExecuteNonQuery 对连接执行命令并返回受影
29、响的行数。该方法不返回对连接执行命令并返回受影响的行数。该方法不返回结果集。即执行命令,但不返回结果。结果集。即执行命令,但不返回结果。 格式:格式: CommandCommand对象对象.ExecuteNonQuery().ExecuteNonQuery() ExecuteReader ExecuteReader 对连接执行命令并生成一个对连接执行命令并生成一个DataReaderDataReader对象。对象。 格式:格式: CommandCommand对象对象.ExecuteReader().ExecuteReader() ExecuteScalar ExecuteScalar 执行查询
30、,并返回查询所返回的结果集中第一行的第执行查询,并返回查询所返回的结果集中第一行的第一列一列, ,而忽略其他行或列。而忽略其他行或列。二、创建二、创建CommandCommand对象对象 1 1、利用、利用ConnectionConnection对象的对象的CreateCommandCreateCommand方法创建方法创建 例例6-5 6-5 向向studentstudent关系表中插入一条记录。关系表中插入一条记录。 2 2、利用、利用SqlCommandSqlCommand类创建。类创建。 SqlCommandSqlCommand类的构造函数有:类的构造函数有: SqlCommand()
31、SqlCommand() SqlCommand(string cmdText)SqlCommand(string cmdText) SqlCommand(string cmdText,SqlConnection SqlCommand(string cmdText,SqlConnection connection)connection) SqlCommand(string cmdText,SqlConnection SqlCommand(string cmdText,SqlConnectionconnection,SqlTransaction transaction)connection,Sql
32、Transaction transaction) 例例6-6 6-6 统计统计studentstudent关系表中记录数。关系表中记录数。 3 3、利用、利用OleDbCommandOleDbCommand类创建。类创建。 OleDbCommand()OleDbCommand() OleDbCommand(string cmdText)OleDbCommand(string cmdText) OleDbCommand(string cmdText,OleDbConnection OleDbCommand(string cmdText,OleDbConnection connection)con
33、nection) OleDbCommand(string cmdText, OleDbConnection OleDbCommand(string cmdText, OleDbConnection connection,OleDbTransaction transaction)connection,OleDbTransaction transaction) 也可以利用也可以利用OdbcCommandOdbcCommand类和类和OracleCommandOracleCommand类创建类创建CommandCommand对象。对象。三、三、SQLSQL参数传递参数传递 1 1、Parameter
34、Parameter对象对象 (1)(1)常见属性常见属性 DbTypeDbType DbType DbType属性用来获取或设置属性用来获取或设置ParameterParameter对象的数据类型。对象的数据类型。常见取值有:常见取值有:BigIntBigInt、IntInt、TinyIntTinyInt、RealReal、FloatFloat、DecimalDecimal、CharChar、NcharNchar、NtextNtext、NVarCharNVarChar和和DateTimeDateTime等。等。在在C#C#中中SqlDbTypeSqlDbType枚举、枚举、OleDbTypeO
35、leDbType枚举、枚举、OdbcTypeOdbcType枚举和枚举和OracleTypeOracleType枚举定义了枚举定义了DbTypeDbType属性的取值。属性的取值。 DirectionDirection Direction Direction属性获取或设置一个值,该值指示参数是只属性获取或设置一个值,该值指示参数是只可输入、只可输出、双向还是存储过程返回值参数。常见可输入、只可输出、双向还是存储过程返回值参数。常见取值有:取值有:InputInput、InputOutputInputOutput、OutputOutput和和ReturnValueReturnValue。默认值为
36、默认值为InputInput。在。在C#C#中中ParameterDirectionParameterDirection枚举定义了枚举定义了DirectionDirection属性的取值。属性的取值。 ParameterNameParameterName ParameterName ParameterName属性用来获取或设置属性用来获取或设置SQLSQL命令中参数的名命令中参数的名称。称。 SizeSize Size Size属性用来获取或设置属性用来获取或设置ParameterParameter对象的最大大小对象的最大大小(以字节为单位)。(以字节为单位)。 ValueValue Valu
37、e Value属性用来获取或设置属性用来获取或设置ParameterParameter对象的值。对象的值。 (2)(2)创建创建ParameterParameter对象对象 利用利用SqlParameterSqlParameter类、类、OleDbParameterOleDbParameter类、类、OdbcParameterOdbcParameter类和类和OracleParameterOracleParameter类创建。类创建。 利用利用CommandCommand对象的对象的CreateParameterCreateParameter方法创建。方法创建。 2 2、ParameterCo
38、llectionParameterCollection集合集合 ParameterCollectionParameterCollection集合表示与集合表示与CommandCommand对象相关联对象相关联的参数集合。的参数集合。 (1)(1)常见属性常见属性 CountCount 返回返回ParameterCollectionParameterCollection集合中集合中ParameterParameter对象的个对象的个数。数。 (2)(2)常见方法常见方法 AddAdd Add Add方法用于将方法用于将ParameterParameter对象加入到对象加入到ParameterCo
39、llectionParameterCollection集合中。其格式:集合中。其格式: ParameterCollectionParameterCollection集合集合.Add(Parameter.Add(Parameter对象对象) ) Clear Clear Clear Clear方法用于将方法用于将ParameterCollectionParameterCollection集合中所有集合中所有ParameterParameter对象删除。其格式:对象删除。其格式: ParameterCollectionParameterCollection集合集合.Clear().Clear() R
40、emove Remove Remove Remove方法用于将方法用于将ParameterCollectionParameterCollection集合中指定集合中指定的的ParameterParameter对象删除。其格式:对象删除。其格式: ParameterCollectionParameterCollection集合集合.Remove(Parameter.Remove(Parameter对象对象) ) 例例6-7 6-7 执行带参数的存储过程。执行带参数的存储过程。 6.4 6.4 数据读取器对象数据读取器对象DataReaderDataReader DataReaderDataRea
41、der对象能够对象能够提供一种从数据库读取行的只读、提供一种从数据库读取行的只读、只进数据流。只进数据流。不能直接实例化不能直接实例化DataReaderDataReader,即实例是调用,即实例是调用ExecuteReader()ExecuteReader()方法后从相应数据库的命令对象方法后从相应数据库的命令对象( (如如SqICommand)SqICommand)中返回的。中返回的。 一、常见属性一、常见属性 1 1、FieldCount FieldCount FieldCount FieldCount属性用于获取当前行中的列数。属性用于获取当前行中的列数。 2 2、HasRows Ha
42、sRows HasRows HasRows属性用于获取一个值,该值指示属性用于获取一个值,该值指示DataReaderDataReader对对象是否包含一行或多行。如果象是否包含一行或多行。如果DataReaderDataReader对象包含一行或对象包含一行或多行,则为多行,则为truetrue;否则为;否则为falsefalse。 3 3、IsClosed IsClosed IsClosed IsClosed属性用于获取一个值,该值指示属性用于获取一个值,该值指示DataReaderDataReader对象是否已关闭。如果指定的对象是否已关闭。如果指定的DataReaderDataRead
43、er对象已关闭,则对象已关闭,则为为truetrue;否则为;否则为falsefalse。二、常见方法二、常见方法 1 1、Close Close Close Close方法用来关闭方法用来关闭DataReaderDataReader对象。其格式:对象。其格式: DataReaderDataReader对象对象.Close();.Close(); 2 2、Read Read Read Read方法使方法使DataReaderDataReader对象前进到下一条记录。如果对象前进到下一条记录。如果存在多个行,则返回存在多个行,则返回truetrue;否则返回;否则返回falsefalse。其格式
44、:。其格式: DataReaderDataReader对象对象.Read().Read() 例例6-8 6-8 对对studentstudent表按学号查询学生信息。表按学号查询学生信息。 3 3、NextResultNextResult 当读取批处理当读取批处理SQLSQL语句的结果时,语句的结果时,NextResultNextResult方法使数方法使数据读取器前进到下一个结果集。如果存在多个结果集,则据读取器前进到下一个结果集。如果存在多个结果集,则返回返回truetrue;否则返回;否则返回falsefalse。其格式:。其格式: DataReaderDataReader对象对象.Ne
45、xtResult().NextResult() 例例6-9 6-9 执行多条执行多条SQLSQL语句。语句。 4 4、GetValue GetValue GetValue GetValue方法用于获取当前记录行指定列的值。其格方法用于获取当前记录行指定列的值。其格式:式: DataReaderDataReader对象对象.GetValue(i).GetValue(i)其中,参数其中,参数i i为整型,指示列号。为整型,指示列号。 5 5、GetValues GetValues GetValues GetValues方法用于获取当前行的集合中的所有属性方法用于获取当前行的集合中的所有属性列。其格
46、式为:列。其格式为: DataReaderDataReader对象对象.GetValues(ObjArray).GetValues(ObjArray)其中,参数其中,参数ObjArrayObjArray为为ObjectObject类型的数组。该方法调用类型的数组。该方法调用后当前行的集合中的所有属性列的值复制到后当前行的集合中的所有属性列的值复制到ObjArrayObjArray数数组中,并返回属性列数。组中,并返回属性列数。 6 6、IsDBNull IsDBNull IsDBNull IsDBNull方法获取一个值,该值指示列中是否包含方法获取一个值,该值指示列中是否包含不存在的或已丢失的
47、值。其格式为:不存在的或已丢失的值。其格式为: DataReaderDataReader对象对象.IsDBNull(i).IsDBNull(i)其中,参数其中,参数i i为整型,指示列号。为整型,指示列号。三、三、DataReaderDataReader对象的声明和创建对象的声明和创建 DataReaderDataReader对象的声明可以利用对象的声明可以利用SqlDataReaderSqlDataReader类、类、OleDbDataReaderOleDbDataReader类、类、OdbcDataReaderOdbcDataReader类和类和OracleDataReaderOracle
48、DataReader类。利用类。利用CommandCommand对象的对象的ExecuteReaderExecuteReader方法创建方法创建DataReaderDataReader对象。对象。 参见例参见例6-96-9 6.5 6.5 数据适配器对象数据适配器对象DataAdapterDataAdapter DataAdapter DataAdapter对象用作对象用作DataSetDataSet对象和数据源之间的桥接对象和数据源之间的桥接器,以便检索和保存数据。器,以便检索和保存数据。一、一、DataAdapterDataAdapter对象对象 1 1、常见属性、常见属性 SelectC
49、ommand SelectCommand SelectCommand SelectCommand属性用于获取或设置一个执行检索命令属性用于获取或设置一个执行检索命令的的CommandCommand对象,对象,用于在数据源中选择记录用于在数据源中选择记录。 InsertCommand InsertCommand InsertCommand InsertCommand属性用于获取或设置一个执行插入命令属性用于获取或设置一个执行插入命令的的CommandCommand对象,对象,用于在数据源中插入记录用于在数据源中插入记录。 DeleteCommand DeleteCommand DeleteCom
50、mand DeleteCommand属性用于获取或设置一个执行删除命令属性用于获取或设置一个执行删除命令的的CommandCommand对象,对象,用于在数据源中删除记录用于在数据源中删除记录。 UpdateCommand UpdateCommand UpdateCommand UpdateCommand属性用于获取或设置一个执行更新命令属性用于获取或设置一个执行更新命令的的CommandCommand对象,对象,用于在数据源中更新记录用于在数据源中更新记录。 2 2、常见方法、常见方法 Fill Fill Fill Fill方法用于填充方法用于填充DataSetDataSet或或DataTa
51、bleDataTable。其格式:。其格式: 1)DataAdapter1)DataAdapter对象对象.Fill(ds).Fill(ds) 参数参数dsds为为DataSetDataSet类型的对象。类型的对象。 2)DataAdapter 2)DataAdapter对象对象.Fill(ds,srcTable).Fill(ds,srcTable) 参数参数dsds为为DataSetDataSet类型的对象,类型的对象,srcTablesrcTable为为stringstring类类型,表示型,表示DataSetDataSet对象中对象中DataTableDataTable名称。名称。 Up
52、date Update Update Update方法为方法为DataSetDataSet或或DataTableDataTable中每个已插入、已中每个已插入、已更新或已删除的行调用相应的更新或已删除的行调用相应的INSERTINSERT、UPDATEUPDATE或或DELETEDELETE语语句,以更新数据库。其格式:句,以更新数据库。其格式: 1)DataAdapter1)DataAdapter对象对象.Update(ds).Update(ds) 参数参数dsds为为DataSetDataSet类型的对象。类型的对象。 2)DataAdapter2)DataAdapter对象对象.Upda
53、te(dt).Update(dt) 参数参数dtdt为为DataTableDataTable类型的对象。类型的对象。二、二、DataAdapterDataAdapter对象的声明和创建对象的声明和创建 可以利用可以利用SqlDataAdapterSqlDataAdapter类、类、OleDbDataAdapterOleDbDataAdapter类、类、OdbcDataAdapterOdbcDataAdapter类和类和OracleDataAdapterOracleDataAdapter类声明和创建类声明和创建DataAdapterDataAdapter对象。对象。 例例6-10 6-10 按学
54、号从按学号从studentstudent表中查询学生信息。表中查询学生信息。 例例6-11 6-11 对对studentstudent表插入记录。表插入记录。6.6 6.6 数据集数据集DataSetDataSet DataSet DataSet对象是对象是ADO.NETADO.NET结构的主要组件,它是从数据结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。源中检索到的数据在内存中的缓存。DataSetDataSet对象由一组对象由一组 DataTableDataTable对象组成。对象组成。一、一、DataSetDataSet内部结构内部结构 DataSetDataSet内部结构如
55、图内部结构如图6.26.2所示。所示。二、二、DataSetDataSet对象的声明和创建对象的声明和创建 可以用可以用DataSetDataSet类声明和创建类声明和创建DataSetDataSet对象。对象。DataSetDataSet类的构造函数有:类的构造函数有: DataSet() DataSet() DataSet(StrName)DataSet(StrName)其中,参数其中,参数StrNameStrName为为stringstring类型,用于指定类型,用于指定DataSetDataSet对象对象名称名称DataRelationCollectionDataSetExtended
56、PropertiesDataTableCollectionDataTableDataViewChildRelationsParentRelationsConstrainsExtendedPropertiesPrimaryKeyDataRowCollectionDataRowDataColumnCollectionDataColumnExtendedProperties图图6.2 DataSet6.2 DataSet内部结构内部结构三、使用三、使用DataSetDataSet对象访问数据库对象访问数据库 使用使用DataSetDataSet对象访问数据库的步骤:对象访问数据库的步骤: 创建创建C
57、onnectionConnection对象,连接数据库。对象,连接数据库。 创建创建CommandCommand对象,设置执行命令和命令类型。对象,设置执行命令和命令类型。 创建创建DataAdapterDataAdapter对象和对象和DataSetDataSet对象,用对象,用DataAdapterDataAdapter对象的对象的FillFill方法填充方法填充DataSetDataSet对象的对象的DataTableDataTable对象。对象。 如果命令是查询数据库,则输出如果命令是查询数据库,则输出DataTableDataTable对象的每行每对象的每行每列。如果要对数据库增、删
58、、改操作,则对列。如果要对数据库增、删、改操作,则对DataTableDataTable对象做对象做相应的增、删、改操作,并通过相应的增、删、改操作,并通过DataAdapterDataAdapter对象的对象的UpdateUpdate方方法将更新后的数据提交到数据库中。法将更新后的数据提交到数据库中。 例例6-12 6-12 对对studentstudent表删除记录。表删除记录。四、四、DataSetDataSet对象和数据控件绑定对象和数据控件绑定 具有具有DataBindingsDataBindings属性或属性或DataSourceDataSource属性的控件称为数属性的控件称为数
59、据控件,在据控件,在C/SC/S模式和模式和B/SB/S模式应用程序设计中有时需要将模式应用程序设计中有时需要将DataSetDataSet对象和数据控件绑定,以实现一些简单的用户界面。对象和数据控件绑定,以实现一些简单的用户界面。 具有具有DataBindingsDataBindings属性的数据控件有:属性的数据控件有:LabelLabel、TextBoxTextBox、ComboBoxComboBox、checkBoxcheckBox、dateTimePickerdateTimePicker、maskedTextBoxmaskedTextBox、monthCalendarmonthCal
60、endar、numericUpDownnumericUpDown、pictureBoxpictureBox、radioButtonradioButton等。等。 具有具有DataSourceDataSource属性的数据控件有:属性的数据控件有:listBoxlistBox、DataGridViewDataGridView等。等。 1 1、将、将DataSetDataSet对象和具有对象和具有DataBindingsDataBindings属性的数据控件属性的数据控件绑定绑定 数据控件的数据控件的DataBindingsDataBindings属性是只读的,该属性获取控属性是只读的,该属性获取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 相机防抖技术与光学补偿考核试卷
- 渔业资源养护项目效益评估方法考核试卷
- 癫痫的护理查房参考
- 慢性肾功能衰竭病人的饮食护理
- 客户培训软件使用操作指南
- 二战之前的学前教育
- 幼儿园中班微课程:纸的奇妙世界
- 2025设备租赁的合同模板范本
- 2025届山东省齐鲁名校高三下学期联考(四)历史试题(含答案)
- 2025桥梁建设工程合同(桥面、护栏)
- 多模态视域下北京市核心区语言景观研究
- 《单轴面筋脱水机设计报告(论文)》
- 内分泌系统 肾上腺 (人体解剖生理学课件)
- GPS静态数据观测记录表
- 山西省城镇教师支援农村教育工作登记表
- 软件项目周报模板
- 著名中医妇科 夏桂成教授补肾调周法
- VSM(价值流图中文)课件
- 考古发掘中文物的采集与保存课件
- 人工气道的护理刘亚课件
- 专业技术人员
评论
0/150
提交评论