• DataReader


    1.如果只需要读取查询结果,DataReader是更好的选择(相对DataSet)。

    DataReader对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,Datareader对象不能关使用new关键字创建。但可以使用ExecuteReader()方法创建。DataReader是一行一行的读取记录的。当记录中有数据时Read()返回TRUE,当到记录集底部时返回FALSE。

    一、DataReader含义

    DataReader相比于DataSet,DataReader是一个抽象类,所以不能用DataReader DR = new DataReader(),来构造函数创建对象,如果要创建一个DataReader对象,必须通过command对象的ExecuteReader方法。

    DataReader对象访问数据的方式,只能顺序读取数据,而且不能写入数据(这点DataSet占据绝对的优势),所谓的顺序读取数据是将数据表中的行从头至尾一次读出。DataReader被创建时,纪录指针在表的最前端,可以使用Read方法每次从表中读取一条纪录。

    DataSet存的是二维数组,而DataReader存的是一维数组。而且DataSet采用的是非连接的传输模式访问数据源,一旦用户所请求的数据读入DataSet,与数据库的连接就关闭,而DataReader则要时刻保持与数据库连接状态

    二、重要属性

    FieldCount: 只读,表示纪录中有多少字段
    HasMoreResults: 表示是否有多个结果,本属性和SQL Script 搭配使用。
    HasMoreRows: 只读,表示是否还有资料未读取
    IsClosed: 只读,表示DataReader 是否关闭
    Item: 只读,本对象是集合对象,以键值(Key)或索引值(Index)的方式取得纪录中某个字段的数据
    RowFetchCount: 用来设定一次取回多少笔记录,预设值为1 笔

    三、常用方法

    Close():关闭DataReader对象

    GetValue(col):获取序号为col的列的值

    GetValues(values)

    获取所有字段的值,并将字段值存放到values数组中。

    GetValues(values)方法原来我不会用,特别是对于这个values数组是哪里来的,以及如果自定义该定义为什么类型呢,后来百度就知道了,用这个方法之前,Object[] values = new Object[sqlrd.FieldCount];这个是定义values数组的方法前提。

    Read()

    读取下一条纪录,返回布尔型,返回true,则表示有下一条纪录。一般这个方法与while()循环一起用。是DataReader对象最重要的一个方法。

    GetDataTypeName(col) :获取序号为col的列的来源数据类型名

    GetFieldType(col) :获取序号为col的列的数据类型,一般显示会是System.**

    GetName(col): 获取序号为col的列的字段名

    GetOrdinal(name) :获取字段名为name的列的序号

  • 相关阅读:
    记一次对网站的SEO优化改造
    pc端页面添加响应式布局
    linux开启coredump
    vue中鼠标事件
    垂直居中的几种方法
    最准确的身份证号码正则验证
    将数组[NaN ,1,21,32,NaN,41,5]里面的NaN成员剔除(复用underscore.js的filter方法)
    项目中使用Mockjs模拟数据
    研究生学习与生活(2019)
    研究生学习与生活(九)
  • 原文地址:https://www.cnblogs.com/BrokenIce/p/5516526.html
Copyright © 2020-2023  润新知