C# 第二章 ADO.NET基础

ADO.NET 概述:

        ADO.NET:是微软公司提供的数据库访问技术,在.NET Framework中负责数据访问的类库集,用于支持 MYSQL和XML等数据源进行访问,客户端可以连接数据源、并查询、添加、删除和更新等数据,是程序和数据源之间的桥梁,提供了面向对象的数据访问架构

        ADO.NET优势:在于与数据源完全断开连接的情况下,对数据进行修改,再讲数据的更新情况返回至数据源,减少了由于数据库连接过多而引起服务器资源被占用的现象

        ADO.NET  支持多层应用程序的开发,在多层体系结构中,相邻层之间需要传递数据,ADO.NET解决方案是以XML格式表示内存数据(数据集),然后将数据以XML格式进行发送。(XML是一种通用格式,可以被多种接口接受,还可以穿越防火墙)所以它具有跨平台性和良好的交互性

ADO.NET体系结构:

C# 第二章 ADO.NET基础_第1张图片

 .NET Framework (数据提供程序):专为数据操作设计的组件,用于处理不同的数据源,支持访问特定的数据库、执行SQL命令和检索结果,它在应用程序和数据源之间搭建了一座桥梁

 .NET Framework 数据提供程序:C# 第二章 ADO.NET基础_第2张图片

 C.NET Framework 数据提供程序的核心对象:C# 第二章 ADO.NET基础_第3张图片

 注:由于数据源不同,上述4个对象针对不同数据源,在 .NET Framework 数据提供程序中提供了不同的解决方案

DataSet(数据集 ):专为独立于所有数据源的数据访问而设计,它在支持ADO.NET的断开式、分布式数据方案中起着至关重要

ADO.NET提供两种访问数据库方式:C# 第二章 ADO.NET基础_第4张图片

 1、断开式:只需要在执行数据库命令时保持数据库的连接,命令执行完毕后将查询到的数据缓存至内存,此时断开数据库连接,在内存中获取数据

      使用Connection对象,DataAdapter对象和DataSet对象实现断开式访问数据库步骤:  

 1、创建数据库连接对象 Connection

   2、创建数据适配对象 DataAdapter,指定select命令和Connection对象

   3、创建数据集DataSet对象,用于在内存中缓存数据

   4、使用DataAdapter对象将查询到的数据填充至DataSet数据集中

    5、更新DataSet中的数据

    6、使用DataAdapter对象将DataSet对象中的数据回传至数据库中        

  2、非断开式:在整个操作过程中需要保持数据库连接

      使用Connection对象,Command对象和DataReader对象实现非断开式访问数据库步骤: 

    一、对数据库进行更改(如Insert、Update、Delete)或执行聚合函数

   1、创建数据库连接对象 Connection,并打开连接

   2、创建命令对象Command

   3、执行相应的SQL命令(Insert、Update、Delete或聚合函数)

    4、关闭数据库连接

二、查询数据库(select)

1、创建数据库连接对象 Connection,并打开连接

2、创建命令对象Command

3、执行Select查询命令,获取DataReader对象

4、使用while循环读取DataReader中的数据

5、关闭DataReader对象

6、关闭数据库连接

ADO.NET操作数据库的原理

C# 第二章 ADO.NET基础_第5张图片

 Connection:用于连接数据库,在应用程序和数据库之间建立了一条数据传输通道

Connection 对象的常用属性
属性 说明
ConnectionString 用于连接数据库的连接字符串
State 用于指示连接对象的状态,枚举类型
Connection对象的常用方法
方法 说明
Open() 打开数据库连接
Close() 关闭数据库连接

可以通过State属性判断数据库的连接状态,如数据库连接是否已经打开、是否已经关闭等,State属性是ConnectionState的枚举类型包含如下6种状态:

ConnectionState枚举值及说明
枚举值 说明
Broken 中断数据库连接,可以先关闭后在打开
Closed 关闭数据库连接状态
Connecting 连接对象与数据库进行连接
Executing 连接对象正在检索数据
Fetching 连接对象正在检索数据
Open 数据库连接处于打开装填

1、SQL Server数据库存在两种登录方式:

1、SQL Server身份验证

语法:server=服务器名;database=数据库名;uid=用户名;pwd=密码;

2、Windows身份验证

语法:server=服务器名;database=数据库名;Integrated Security=true;

2、导入System.Data和System.Data.SqlClient命名空间

         using System.Data;

        using System.Data.SqlClient;

3、创建Connection对象  语法:SQLConnection 连接对象名=new SQLConnection(“连接字符串”);

4、打开连接:连接对象名.Open();

5、关闭连接:连接对象名.Close(); 

C# 第二章 ADO.NET基础_第6张图片

Command:用于执行SQL命令,对数据库中的数据进行增、删、改、查和执行聚合函数(在操作过程中必须保持应用程序和数据库之间的连接)

Command对象常用属性
属性 说明
CommandTex 获取或设置对数据库执行的T-Sql命令
Connection 获取或设置连接数据库的Connection对象
Command对象的常用方法
方法 说明
ExecuteNonQuery 执行SQL语句,并返回受影响行数
ExcuteReader 执行查询命令,并且返回DataReader对象
ExecuteScalar 执行查询命令,返回结果集中首行行列的值

创建Command对象语法:SQLConnection 命令对象名=new SQLConnection(“SQL语句”,Connection对象);

执行SQL语句,返回受影响的行数,语法:

int 受影响行数=命令对象名.ExecuteNonQuery();

执行Command对象的 ExecuteNonQuery()方法前必须先打开数据库连接,执行完毕后需要关闭数据库连接,否则会报错

DataReader:数据读取对象,提供了一个只读只进的数据读取器,用于从查询结果中读取数据,它每次只能读取一行数据,并且在读取过程中必须保持连接打开状态

DataReader对象的常用属性
属性 说明
FieldCount 获取每行数据的列数
HasRows 指示查询结果中是否还存在未读取的数据Bool类型

DataReader对象的常用方法
方法 说明
Read 使DataReader前进到下一条记录,如果有下一条记录返回true否则返回false
Close 关闭DataReader对象
GetName 获取指定列的名称

DataReader对象负责对查询结果进行逐行读取,其实现步骤如下:

1、创建数据库连接对象Connection

2、打开数据库连接

3、定义用于查询的SQL语句

4、创建命令对象 Command

5、执行SQL命令,返回DataReader对象语法如下:

SQLDataReader 数据读取对象=命令对象.ExecuteReader();

6、使用循环 逐行读取数据 语法如下:

while(数据读取对象.read){

Object 某列的值=数据读取对象["索引或列名"];

}

7、关闭DataReader 语法如下:

数据读取对象.Close();

8、关闭连接对象C# 第二章 ADO.NET基础_第7张图片

 C# 第二章 ADO.NET基础_第8张图片

 C# 第二章 ADO.NET基础_第9张图片

 

你可能感兴趣的:(c#,.net,开发语言)