C#与数据库访问技术总结(十四)之DataAdapter对象

DataAdapter对象

DataAdapter对象主要用来承接Connection和DataSet对象。

DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connection连接到的数据源,

而Connection对象只负责数据库连接而不关心结果集的表示。

所以,在ASP.NET的架构中使用DataAdapter对象来连接Connection和DataSet对象。

另外,DataAdapter对象能根据数据库里的表的字段结构,动态地塑造DataSet对象的数据结构。

DataAdapter对象的常用属性

DataAdapter对象的工作步骤一般有两种,

一种是通过Command对象执行SQL语句,将获得的结果集填充到DataSet对象中;

另一种是将DataSet里更新数据的结果返回到数据库中。

DataAdapter对象的常用属性形式为XXXCommand,用于描述和设置操作数据库。

使用DataAdapter对象,可以读取、添加、更新和删除数据源中的记录。

对于每种操作的执行方式,适配器支持以下4个属性,类型都是Command,分别用来管理数据操作的“增”、“删”、 “改”、“查”动作。

SelectCommand属性:该属性用来从数据库中检索数据。

InsertCommand属性:该属性用来向数据库中插入数据。

DeleteCommand属性:该属性用来删除数据库里的数据。

UpdateCommand属性:该属性用来更新数据库里的数据。

例如,以下代码能给DataAdapter对象的selectCommand属性赋值。

//连接字符串

SqlConnection conn;

//创建连接对象conn语句

//创建DataAdapter 对象

SqlDataAdapter da=new SqlDataAdapter;

//给DataAdapter对象SelectCommand属性赋值

da.SelectCommand =new SqlCommand(" select * from user ", conn);

//后继代码

同样,可以使用上述方式给其他的InsertCommand、DeleteCommand和UpdateCommand属性赋值。

当在代码里使用DataAdapter对象的SelectCommand属性获得数据表的连接数据时,

如果表中数据有主键,就可以使用CommandBuilder对象来自动为这个DataAdapter对象隐形地生成其他3个InsertCommand、DeleteCommand和UpdateCommand属性。

这样,在修改数据后,就可以直接调用Update方法将修改后的数据更新到数据库中,而不必再使用InsertCommand、DeleteCommand和UpdateCommand这3个属性来执行更新操作。

DataAdapter对象的常用方法

DataAdapter对象主要用来把数据源的数据填充到DataSet中,以及把DataSet里的数据更新到数据库,同样有SqlDataAdapter和OleDbAdapter两种对象。

它的常用方法有构造函数、填充或刷新DataSet的方法、将DataSet中的数据更新到数据库里的方法和释放资源的方法。

    1.构造函数

不同类型的Provider使用不同的构造函数来完成DataAdapter对象的构造。对于SqlDataAdapter类,其构造函数说明如下表所示。


函数定义


参数说明


函数说明


SqlDataAdapter()


不带参数


创建SqlDataAdapter对象


SqlDataAdapter(SqlCommand selectCommand


selectCommand:指定新创建对象的SelectCommand属性


创建SqlDataAdapter对象。用参数selectCommand设置其Select Command属性


SqlDataAdapter(string selectCommandText, SqlConnection selectConnection)


selectCommandText:指定新创建对象的SelectCommand属性值

selectConnection:指定连接对象


创建SqlDataAdapter对象。用参数selectCommandText设置其Select Command属性值,并设置其连接对象是selectConnection


SqlDataAdapter(string   selectCommandText,String selectConnectionString


selectCommandText:指定新创建对象的SelectCommand属性值

selectConnectionString:指定新创建对象的连接字符串


创建SqlDataAdapter对象。将参数selectCommandText设置为Select Command属性值,其连接字符串是selectConnectionString

O1eDbDataAdapter的构造函数类似SqlDataAdapter的构造函数,如下表2所述。


函数定义


参数说明


函数说明


OleDbDataAdapter()


不带参数


创建OleDbDataAdapter对象


OleDbDataAdapter( OleDbCommand  selectCommand)


selectCommand:指定新创建对象的SelectCommand属性


创建OleDbDataAdapter对象。用参数selectCommand设置其SelectCommand属性


OleDbDataAdapter(string selectCommandText,

OleDbConnection  selectConnection)


selectCommandText: 指定新创建对象的SelectCommand属性值

selectConnection:指定连接对象


创建SqlDataAdapter对象。用参数selectCommandText设置其SelectCommand属性值,并设置其连接对象是selectConnection


OleDbDataAdapter(string selectCommandText,Stnng selectConnectionString)


selectCommandText:指定新创建对象的SelectCommand属性值

selectConnectionString:指定新创建对象的连接字符串


创建OleDbDataAdapter对象。将参数selectCommandText设置为SelectCommand属性值,其连接字符串是selectConnectionString

 

  

2.Fill类方法.

当调用Fill方法时,它将向数据存储区传输一条SQL SELECT语句。

该方法主要用来填充或刷新DataSet,返回值是影响DataSet的行数。

该方法的常用定义如表所示。


函数定义


参数说明


函数说明


int Fill(DataSet  dataset)


dataset:需要更新的DataSet


根据匹配的数据源,添加或更新参数所指定的DataSet,返回值是影响的行数


int Fill(DataSet dataset,

string srcTable)


dataset:需要更新的DataSet

srcTable:填充DataSet的dataTable名


根据dataTable名填充DataSet

3.int  Update(DaraSetdataSet)方法

当程序调用Update方法时,DataAdapter将检查参数DataSet每一行的RowState属性,根据RowState属性来检查DataSet里的每行是否改变和改变的类型,并依次执行所需的INSERT、UPDATE或DELETE语句,将改变提交到数据库中。

这个方法返回影响DataSet的行数。

更准确地说,Update方法会将更改解析回数据源,但自上次填充DataSet以来,其他客户端可能已修改了数据源中的数据。

若要使用当前数据刷新DataSet,应使用DataAdapter和Fill方法。

新行将添加到该表中,更新的信息将并入现有行。

Fill方法通过检查DataSet中行的主键值及SelectCommand返回的行来确定是要添加一个新行还是更新现有行。

如果Fill方法发现DataSet中某行的主键值与SelectCommand返回结果中某行的主键值相匹配,则它将用SelectCommand返回的行中的信息更新现有行,并将现有行的RowState设置为Unchanged。

如果SelectCommand返回的行所具有的主键值与DataSet中行的任何主键值都不匹配,则Fill方法将添加RowState为Unchanged的新行。

时间: 2024-12-30 21:49:43

C#与数据库访问技术总结(十四)之DataAdapter对象的相关文章

C#与数据库访问技术总结(十八)

ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库的一般步骤,而且说明了使用不同种类的ADO.NET组件集合访问数据库的一般步骤. 可以通过代码进一步了解这两种数据提供者访问方式的异同之处. 使用OLE DB.NET  Provider OLE DB的数据提供者可以访问Access和SQL等数据库,代码如下: //设置连接字符串 string db

ADO.NET数据库访问技术

ADO.net:数据库访问技术程序操作的数据都是变量或对象,这些东西都存在于内存中但是有很多的数据是存在数据库中的,数据库中的数据存在于硬盘上 作用:将数据库中的数据取到内存中来,可以让程序进行操作 将内存中的数据,写入到数据库中 1.using System.Data.SqlClient; //引用命名空间 2.建立 数据库连接类 string str = "server=.;database=Data0515;user=sa;pwd=123;";//连接字符串 SqlConnect

C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看

数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键关系 2.创建新的C#项目,创建 数据库连接类 与 数据库操作方法 a.引用数据库 using System.Data.SqlClient;    b.创建数据库连接类:先进行编写连接字符串,在实例化连接类 c.创建数据库操作方法(此处不是实例化类)    d.打开数据库 → 执行操作 → 关闭数据

数据库访问技术之JDBC

在了解JDBC之前呢,我们可以先对ODBC做一个回顾,以便于更好的理解JDBC.看名字也知道这两个关系不一般,他们实现了同样的功能,为应用程序连接和操作数据库提供支持.所以,我们先从ODBC开始. ODBC ODBC(Open Database Connectivity)是开放数据库互连的简称,是一种使用SQL的应用程序接口.它是一系列的规范和对数据库访问的API.那么API+SQL就可以执行对数据库的操作.它是不依赖于DBMS的,即通过ODBC可以以相同的方式连接大部分数据库.它包括了应用程序

Android官方ORM数据库Room技术解决方案:@Embedded内嵌对象(二)

Android官方ORM数据库Room技术解决方案:@Embedded内嵌对象(二) (一)附录1简介了Android Room的基本使用.在附录1例子中,User对象元素均为普通的Java基本数据类型,但是实际的开发中,通常建立的持久化存储对象复杂,且通常是结构化的Java对象,互相之间存在引用或者内嵌关系. Android Room支持数据库表Java对象通过注解符@Embedded内嵌一个Java对象.这样就像过去的ORM数据库一样,比如构造一个名为Info的Java对象,作为一个成员变量

C#与数据库访问技术总结(十六)之 DataSet对象

DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线访问数据库的特性,所以它更能用来接收海量的数据信息. DataSet对象概述 DataSet是ADO.NET中用来访问数据库的对象. 由于其在访问数据库前不知道数据库里表的结构,所以在其内部,用动态XML的格式来存放数据.这种设计使DataSet能访问不同数据源的数据. DataSet对象本身不同数

C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例

DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data source=localhost;uid=sa;pwd=aspent;database=LOGINDB" string sqlstr=" select * from USER "; //利用构造函数,创建DataAdapter SqlDataAdapter da=new Sql

C#与数据库访问技术总结(七)综合示例

综合示例 说明:前面介绍了那么多,光说不练假把式,还是做个实例吧. 表:首先你要准备一张表,这个自己准备吧.我们以学生表为例. 1.ExecuteScalar方法 ExecuteScalar方法执行返回单个值的命令.例如,如果想获取Student数据库中表studentInfo的学生的总人数,则可以使用这个方法执行SQL查询: Select count(*) from studentInfo . (1) 建立Windows Application 应用程序 (2) 在Form1上添加一个按钮Bu

ADO.NET(数据库访问技术)

[ADO.net结构]: ADO.NET用于访问和操作数据库的两个主要组件是:.NET Framework 数据提供程序和DataSet. a..NET Framework数据提供程序:是专门为数据操作设计的组件,用于处理不同的数据源,支持访问特定的数据库.执行SQL命令和检索结果. b..NET Framework数据提供程序包含4个核心对象:  Connection:(连接)建立与特定数据源的连接:   Command:(命令)对数据源执行命令:   DataReader:( 数据读取)从数