在ADO.NET中提供了两种对数据库的访问方式:连接式与断开式。使用DataReader方式访问数据库发型连接式,访问过程中会一直与数据库保持连接,效率高,但是占用了一个数据库连接;使用DataAdapter方式访问数据库属于断开式,它会一次性将数据读入到内存中,在访问内存中的数据时不需要与数据库一直保持连接。
图:物理数据库与内存数据库的对比
Connection对象
Connection对象也称为对数据库连接对象。负责对数据库的连接。
打开数据库后要关闭
Command对象
Command对象也称为数据库命令对象,Command对象主要执行包括添加、删除、修改及查询数据的操作的命令。也可以用来执行存储过程。
主要有三个方法:
ExecuteNonQuery():返回受影响的行数,主要用于执行对数执行增、删、改。
ExecuteReader():执行一个查询的SQL语句,返回一个DataReader对象。
ExecuteScalar():从数据库检索单个值。返回结果的第一行第一列。
DataReader对象
DataReader对象是一个读取行的只读流的方式,绑定数据时比使用数据集方式性能要高,他是只读的。不能直接实例化,必须通过Command对象来创建实例,因为DataReader对象读取数据时需要与数据保持连接,使用完后一定要关闭。并还要关闭相应的Connection对象。
了解DataReader读取数据4种方法
DataAdaper对象
DataAdaper对象也称为数据适配器对象,DataAdapter对象利用数据库连接对象(Connection)连接的数据源,使用数据库命令对象(Command)规定的操作从数据源中检索孾数据送往数据集(DataSet),或者将数据集中经过编辑后的数据送回数据源。
DataSet对象
DataSet对象也称为数据集对象,DataSet对象用于表示那些储存在内存中的数据,它相当于一个内存中的数据库。它可以包括多个DataTable对象及DataView对象。DataSet主要是用于管理存储在内存中的数据据的断开操作。
由于DataSet对象提供了一个离线的数据源,这样减轻了数据库以及网络的负担,在设计程序的时候可以将DataSet对象作为程序的数据源。
DataTable对象
DataTable是ADO.NET库中的核心对象,就像普通的数据库中的表一样,它也有行和列。主要包括DataRow和DataColumn,也就是行和列。
DataRow数据行:数据行是给定数据表中的一行数据,或者是数据表中的一条记录。
DataColumn数据列:数据表中的数据列(字段)定义了表的数据结构。
参数化SQL语句
避免SQL注入的两种方式:存储过程和参数化SQL语句。
使用存储过程的特点:执行速度快。
使用参数化SQL语句的特点:在查询SQL语句中包含查询参数,对于所需要的参数一目了然,执行速度比存储过程稍低。
分页查询SQL语句
分页查询就是根据需要每次只返回所需要的数据,而不用每次都从数据库中全部把数据全部提取出来。这样可以提高程序的性能。取决于两个条件:每页显示条数和要显示的页数。
计算公式:假如总共有M条记录,每页显示N条记录,那么需要显示全部记录所用到的页数PAGE为:
PAGE=(M%N)==0?(M/N):(M/N+1);