• ADO.NET


    定义:

    ADO.NET 是一组向 .NET Framework 程序员公开数据访问服务的类。 ADO.NET 为创建分布式数据共享应用程序提供了一组丰富的组件。

    这篇博客会简单介绍ADO.NET的以下几个对象:

    • Connection对象
    • Command对象
    • DataReader对象
    • DataAdapter对象
    • DataSet对象

    一、Connection对象

      Connection对象用于与数据源进行连接,所有Connection对象的基类都是DbConnection。

      DbConnection有以下几个派生类(后面用SqlConnection进行代码演示):

      • EntityConnection
      • OdbcConnection
      • OledbConnection
      • OracleConnection
      • SqlConncetion

      Connection有两个重要的属性:

      1. ConnectionString : 连接数据库的字符串;
      2. State : 表示Connection的状态,其有Open和Close两种状态。

      Connection有两个重要的方法:

      1. Open : 打开数据库(在调用Open方法后,State的值会变为Open)
      2. Close : 关闭数据库(在调用Close方法后,State的值会变为Close)

      注意:在使用完数据库连接对象后,一定要对其进行关闭,使用Close方法或使用using关键字对对象进行引用,在使用完毕后进行自动释放。

      以下代码创建了一个SqlConnection对象,并完成了打开和关闭数据连接的操作。

    二、Command对象

      表示要对数据源执行的 SQL 语句或存储过程。 为表示命令的、数据库特有的类提供一个基类。

      DbCommand同样有几个派生类,与DbConnection对应:

      • EntityCommand
      • OdbcCommand
      • OledbCommand
      • OracleCommand
      • SqlCommand

      Command有三个重要的属性:

      • CommandText : 执行命令或存储过程名称
      • Connection : 连接数据库的对象
      • CommandType : CommandText的类型
        • Text表示CommandText为普通命令文本
        • StoredProcedure表示CommandText为存储过程
        • TableDirect只有OledbCommand才能使用,表示CommandText为要访问的表名

      Command有三个重要的方法:

      • ExecuteNonQuery : 执行Command,返回受影响的行数
      • ExecuteReader : 执行Command,返回DataReader对象(DataReader为只读流,后面会介绍)
      • ExecuteScalar : 执行Command,返回结果集的第一行第一列的值

    三、DataReader对象

      从数据源读取行的一个只进流。

      DataReader同样有相同的几个派生类:

      • EntityDataReader
      • OdbcDataReader
      • OledbDataReader
      • OracleDataReader
      • SqlDataReader

      DataReader存在期间,其Connection必须保持打开,这样做的优点在于读取速度快,缺点在于会占用数据库连接,并且因为DataReader是一个只进只读流,是不能看之前的数据的。

      可以通过调用其Read方法,前进到下一条数据,当Read方法返回false时,表示数据已经读取到最后一条。

      注意:在使用DataReader期间,不能断开Connection的连接。

    四、DataAdapter对象

      表示用于填充 DataSet和更新数据库的一组数据命令和一个数据库连接。

      DataAdapter也有相同的几个派生类:

      • EntityDataAdapter
      • OdbcDataAdapter
      • OledbDataAdapter
      • OracleDataAdapter
      • SqlDataAdapter

      之前介绍的DataReader可以获取执行数据库命令返回的结果集, 但由于在使用DataReader期间,不能断开Connection连接,如果在获取结果集后,需要做大量复杂的操作或需要不断的使用前面和后面的某些数据时,DataReader就会显得乏力,所以就有DataAdapter来弥补这个缺点。

      DataAdapter在进行实例化的时候, 可以选择传入一个Command对象或传入CommandText和ConnectionText进行初始化,在执行CommandText的时候,并不是让Command去直接执行, 而是使用DataAdapter的Fill方法,执行命令并将结果集填充到DataTable或DataSet(下面会进行说明)。

      在使用DataAdapter时,因为它是将结果集填充到DataTable或DataSet中,所以在使用返回的结果集时,并不需要让Connection持续连接,而且DataTable和DataSet是可以反复读取的。

    五、DataSet对象

      表示一个存放于内存中的数据缓存。

      上面介绍的DataAdapter,在执行的时候,可以将数据集填充到DataSet中。

      DataSet中有很多表,可以通过Tables索引器来获取其包含的表,一般执行DataAdapter时,数据都会填充到DataSet的第一个表中,所以可以直接通过dataAdapter.Tables[0]来获取返回的结果集。

  • 相关阅读:
    C#session配置
    在本地局域网 windows server 2008 下安装 Nginx 1.12.1
    博客园地址
    oracle 导入关键字说明
    oracle 导出关键字说明
    重塑和轴向旋转
    合并重叠数据
    Pandas 的轴向连接 concat
    c语言数据类型、运算符和表达式
    数据规整化:pandas 求合并数据集(交集并集等)
  • 原文地址:https://www.cnblogs.com/hourglasser/p/3407327.html
Copyright © 2020-2023  润新知