前言
随着ORM和Code First技术的盛行,相信很多同学已经不用手写SQL了,甚至有的同学从来没有写过SQL语句。为了帮助大家对ORM的理解,对C#底层数据库访问的理解,我们有必要学习ADO.NET技术。
ADO.NET是c#新一代数据库访问技术标准,所有想支持c#语言的数据库都需要实现该标准,常用的ORM也是建立在其之上。
一、数据库执行流程
应用程序访问数据的流程是:应用程序使用用户名和密码登录数据库服务器,建立连接通道;应用程序携带SQL命令访问数据库服务器;数据库收到命令后检查并执行,再返回执行结果给应用程序:
二、关键对象说明
IDbConnection数据库驱动连接接口,它的主要功能有创建数据库连接、打开数据库连接、关闭数据库连接。
//获取数据库连接
public IDbConnection GetConnection(string connectionString = null)
{
return null;
}
IDbCommand数据库命令执行接口,所有的增删查改命令均由其执行。
//获取数据库命令执行对象
public IDbCommand GetDbCommand(IDbConnection connection = null)
{
return null;
}
IDbDataAdapter数据库适配器接口,用于一次性操作一批数据。
//数据库适配器对象
public IDbDataAdapter GetAdapter()
{
return null;
}
IDbDataParameterSQL命令的参数接口,所有的参数将由其存储。
//数据库参数对象
public IDbDataParameter GetParameter()
{
return null;
}
读取数据集IDbTransaction数据库事务接口,其主要功能是开始事务、提交事务、回滚事务。
//数据库事务对象
public IDbTransaction GetTransaction()
{
return null;
}
三、数据库命令执行流程
应用程序想要执行数据库语句,需要经过以下步骤:创建数据库连接、打开数据库连接、构建命令执行器、执行命令函数、关闭数据库连接
//创建一个数据库连接
IDbConnection dbConnection = GetConnection();
//打开连接
dbConnection.Open();
//构建数据库命令执行对象
var cmd = GetDbCommand();
//设置数据库命令,即SQL
cmd.CommandText = "执行的SQL语句";
//设置参数
cmd.Parameters.Add("参数值");
//设置数据库事务
cmd.Transaction = GetTransaction();
四、命令执行函数介绍
数据库命令执行函数主要有三个:
ExecuteNonQuery:执行命令返回受影响行数,该命令用于新增、修改、删除操作。
ExecuteScalar:返回第一行第一列,用于查询少量数据。
ExecuteReader:返回一个读取器对象,每次读取一行数据速度非常快,需要一直占用连接。
//执行命令返回收影响的行数
cmd.ExecuteNonQuery();
//返回第一行第一列
cmd.ExecuteScalar();
//返回一个读取器,每次读取一行数据
cmd.ExecuteReader();
五、批量数据操作器
使用数据库适配器接口可以批量读取、更新、删除数据
//读取一个数据集
var adpter = GetAdapter();
DataSet dataSet = null;
adpter.Fill(dataSet);
Fill方法是常用的查询数据集的方法可以一次从数据库加载一个数据集然后断开连接。
六、关闭数据库
执行完数据库命令后需要及时关闭连接以防止内存泄露。
//关闭数据库
dbConnection.Close();
本账号将持续分享更多实用干货,关注我带你领略.net的魅力