ADO.NET(课程学习内容)

1.ADO.NET概述

·什么是ADO.NET?

  1. ADO.NET是一种访问数据库的技术,是.NET 托管应用程序的数据库API
  2. 位于System.Data及其子命名空间中的类型集合,用来在.NET平台内访问和处理数据库中的数据
  3. ADO革命性的、更可靠的继承者
  4. 为基于Web的无连接环境而设计
  5. 得到了高级XML支持的编程模型

·ADO.NET对象模型

 

ADO.NET(课程学习内容)_第1张图片

·已连接环境

  1.在已连接环境中,用户可以经常连接到数据源
  2.优点
    更安全、更容易维护
    更容易控制并发性
    与非连接环境比较,数据刷新更及时
  3.缺点
    必须有固定的数据库连接
    扩展性不好

·非连接环境

  1.在非连接环境中,用户可以在非连接的计算机上使用数据的子集,以后再将其更新到数据源
  2.优点
    任何时候都可用,并可随时连接到数据源进行处理
    共享连接资源
    提高了应用程序的性能和扩展性
  3.缺点
    数据不能保证是最新的
    可能发生更新冲突,要想办法解决

2.数据提供程序

·.NET 框架包含 4 种数据提供程序

  SQL Server 数据提供程序
  OLE DB 数据提供程序
  ODBC 数据提供程序
  Oracle 数据提供程序

·数据提供程序包括四种类型的对象

  1.Connection对象
表示与一个数据库的物理连接,主要负责打开、关闭、改变数据库以及管理事务
  2.Command对象
表示在数据源上执行的一条SQL语句或一个存储过程
一个Connection对象可以独立的创建和执行不同的Command
  3.DataReader对象
一种快速、低开销的对象,用于从数据源中获取只读的数据流
  4.DataAdapter对象
Connection对象和DataSet之间的桥梁
由四个Command对象组成

·数据提供程序之间的关系

 

3.连接对象

·SqlConnection类

  1.构造连接对象

ADO.NET(课程学习内容)_第2张图片

  2.打开和关闭连接

ADO.NET(课程学习内容)_第3张图片

4.命令对象

·SqlCommand类

  构造命令对象

ADO.NET(课程学习内容)_第4张图片

·SqlCommand类

  ExecuteNonQuery方法
执行非查询命令,例如Insert、Update、Delete
返回命令影响到的行数
  ExecuteScalar方法
执行一个SQL命令,并返回结果集的第1列第1行的值
适合执行COUNT、AVG、MIN、MAX、SUM函数
该函数返回Object类型,须进行类型转换
  ExecuteReader方法
返回DataReader对象
DataReader对象是一个快速、只读、只进的的数据流
DataReader对象用后应关闭,否则不能重用与之关联的连接对象和命令对象

5.事务处理

·事务

一项事务(Transaction)就是必须作为单个工作单元来对待的一系列操作
同一事务中的操作要么全部成功,要么全部失败
ADO.NET通过Transaction对象来支持事务
Transaction对象是在打开的连接上创建的,方法是将Transaction对象的引用分配给连接对象的Transaction属性
如果事务提交,构成该事务的所有命令将会永久地写入数据源,如果事务回滚,所有的命令将从数据源取消

·创建事务

调用Connection对象的BeginTransaction方法创建事务
  BeginTransaction()
开始事务
  BeginTransaction(IsolationLevel)
在指定的隔离级别开始事务
IsolationLevel.ReadCommitted : sqlserver默认级别。
IsolationLevel.ReadUncommitted
IsolationLevel.RepeataRead
IsolationLevel.Serializable
  BeginTransaction(TransactionName)
开始事务,并指定事务名称
  BeginTransaction(IsolationLevel,TransactionName)
在指定的隔离级别开始事务,并指定事务名称

 

 ·SqlTransaction 类

 ADO.NET(课程学习内容)_第5张图片

 6.参数化命令

 ·使用参数化命令

构造参数化的命令字符串

向Command对象的Parameters集合调用Add方法添加参数

运行时给参数赋值

7.存储过程

·编写一个存储过程

ADO.NET(课程学习内容)_第6张图片

 ·调用存储过程

ADO.NET(课程学习内容)_第7张图片

·带返回参数的存储过程

ADO.NET(课程学习内容)_第8张图片

·调用存储过程并检索返回值和输出参数

ADO.NET(课程学习内容)_第9张图片

8.DataSet

·什么是 DataSet ?

数据集(DataSet)是记录在内存中的数据,类似于一个简化的关系数据库
DataSet和数据源并没有连接在一起
DataSet不知道自身所包含的数据来自哪里
  DataSet 的组成
DataTableCollection
由DataTable组成,DataTable由Column集合、Row集合和Constraint集合组成
DataRelationCollection
由DataRelation组成

·DataSet 的分类

ADO.NET支持非类型化数据集和类型化数据集
非类型化数据集
System.Data.DataSet类的实例
类型化数据集
从System.Data.DataSet类继承而来的类的实例
两者之间的区别
类型化数据集把表和表内的列作为对象属性公开,可直接通过名称来引用表和列
类型化数据集允许对数据值进行编译时检查
类型化数据集比较消耗资源

·创建数据集

创建类型化数据集一般使用组件设计器来创建
创建非类型化数据集
可以使用组件设计器创建,也可以使用编程方式创建

·数据集中重要的属性

Tables集合
Relations集合

·数据集的 Tables 集合

对于类型化数据集,Tables集合是由数据集架构定义的
对于非类型化数据集,Tables集合可以通过设计器创建表和表中的列,也可以使用编程方式创建表和表中的列

·数据集的 Relations 集合Relations集合

可包含零个或多个数据关系对象,每个对象表示两个表之间的关系
对于非类型化数据集,Relations集合可以通过关系集合编辑器或以编程方式添加数据关系对象
对于类型化数据集可以使用XML架构设计器或以编程方式添加数据关系对象

·数据集方法

Clone方法
创建一个数据集副本,包括数据集的表、关系和约束对象
Copy方法
Clone方法只复制数据集的结构,Copy方法即复制数据集结构也复制其数据
Clear方法

9.DataAdapter

·DataAdapter 的角色

ADO.NET(课程学习内容)_第10张图片

·DataTable的组成

数据表包含了实际的数据,数据表可以是数据集的一部分,也可以单独创建
数据表的基本功能是包含三种集合的容器
列集合:定义表的结构
行集合:包含的数据本身
约束集合:执行数据的完整性约束

·枚举DataSet中的表名

·枚举表中的行

·枚举表中的列

ADO.NET(课程学习内容)_第11张图片

·在DataTable中插入记录

创建与表匹配的新行

给新增加的行赋值

添加新行到数据集

·在DataTable中选择记录

  DataTable.Select方法

ADO.NET(课程学习内容)_第12张图片

·在DataTable中更新数据

·在DataTable中删除记录

ADO.NET(课程学习内容)_第13张图片

·DataRow 的状态和版本

RowState属性
数据行的RowState属性反映了数据表创建后或最近一次调用AcceptChanges后所执行的操作,其值由DataRowState枚举定义
Added、Deleted、Detached、Modified、Unchanged
行的版本
根据最近一次调用AcceptChanges以来对数据行的操作,数据表可以维持数据行的多个版本
Current、Default、Original、Proposed

·接受和拒绝数据修改

AcceptChanges
数据集、数据表、数据行都支持该方法
DataAdapter的Update方法自动调用该方法
RejectChanges
放弃对数据集的修改
该方法将数据集恢复到上次调用AcceptChanges后的状态,放弃所有的新行,恢复被删除的行并把所有的列恢复到其初始值
这两个方法把数据行的RowStaus设为Unchanged

·从数据库初始化 DataSet

DataAdapter.Fill方法

 ADO.NET(课程学习内容)_第14张图片

以上代码完成的工作
打开数据库连接
对pubs数据库执行查询
在DataSet中创建一个名为Titles的DataTable并使用Titles表的架构初试化DataTable
检索查询产生的所有记录,写入DataTable中
关闭数据库连接

·把更改写回数据库

DataAdapter.Update方法
可以一次更新一个DataTable或者更新整个DataSet

·CommandBuilder 类

根据SelectCommand生成其他三个命令

10.DataTable

·添加唯一约束

UniqueConstraint

·添加外键约束

ForeignKeyConstraint

 

11.DataView

  创建 DataView
DataView dv = new DataView(ds.Tables[“*”]);
  DataView 的属性
Table
获取或设置源DataTable
Sort
RowFilter
从视图中筛选数据
  DataView 的方法
Find
根据主键查询

 

你可能感兴趣的:(ADO.NET(课程学习内容))