DataReader对象:

·DataReader对象是一个读取行的只读流的方式,绑定数据时比使用数据集方式性能要高,因为他是只读的,所以如果要对数据库中的数据进行修改就需要借助 将所做的修改保存到数据库。

·DataReader对象不能直接实例化,必须借助与其相关的Command对象来创建实例,例如用SQLCommand的实例的ExecuteReader()方法可以创建sqlDataReader实例。

·因为DataReader对象读取数据时需要与数据库保持连接,所以在使用完DataReader对象度去玩数据之后应该立即调用它的Close()方法关闭,并且还应该与之相关的Connection对象。

DataReader读取数据:

·一种是按照查询的时候列的索引用指定的方式和数据格式来读取列值,无需相应的转换,缺点是如果数据不能转换成相应的格式就会抛出异常。
sqlDataReader reader; //实例化一个sqlDataReader对象。
reader.GetInt(0); //因为第一列的数据的类型是Int所以使用GetInt().
reader.GetString(1); //因为第二列的数据的类型是String所以适应GetString().

·第二种方式就是按照索引的方式读取,在读取的时候并不进行值转换,这样得到的值是一个object类型的值,还需要根据数据库里面的字段进行相应的转换。
sqlDataReader reader; //实例化一个sqlDataReader对象。
reader[0]; //读取第一列,读出的数据类型是object类型。
reader[1]; //读取第二列,读出的数据类型是object类型。

·最后一种是按照列名的方式去读,并且在读的时候也不进行相应的转换,的到达额是object类型的值,灵活性强。
sqlDataReader reader; //实例化一个sqlDataReader对象。
reader["UserId"]; //读取列名为“UserId"一列的数据。

::就灵活性来说,第三种最灵活,第二种次之,第一种不灵活;就性能来说第一种最高,第二种稍次,第三中最低。

零碎知识点:
SQLDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

** 使用CommandBehavior.CloseConnection的作用是,当关闭reader的时候,会直接关闭数据连接。

MSSQL - SqlDataReader的更多相关文章

  1. C# / MSSQL / WinForm / ASP.NET - SQLHelper中返回SqlDataReader数据

    /// <summary> /// Execute a SqlCommand that returns a resultset against the database specified ...

  2. ADO.NET基础01(ADO.NET组成,数据库的方式,SqlCommand,SqlDataReader)

    什么是ADO.NET: ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类操作文件一样, System.Data.这组类是用来操作数据库(不光是MSS ...

  3. MSSQL ADO.NET

    为什么要学ADO.NET 之前我们所学的只能在查询分析器里查看数据,操作数据,我们让普通用户去学sql,所以我们搭建了一个界面(Web/Winform) 让用户方面的操作数据库中的数据 什么是ADO. ...

  4. [干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)

    前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不其然,这次开发者大会上就推出了MSSQL ...

  5. 分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节

    1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...

  6. MSSQL远程连接

    背景:部署公司自己研发的ERP系统. 1)系统架构: .NET+MSSQL. 2)服务器系统:Windows Server 2008 R2 Enterprise 3)数据库:MSSQL Server ...

  7. 学习笔记 MSSQL显错手工注入

    和朋友一起学习,速度就是快.感谢珍惜少年时. 网上很多都在长篇大论MSSQL显错手工注入,其实原理只有一小段.如下: ' and (查询一段内容)=1 and 'C'='Cnvarchar类型(查询一 ...

  8. MSSQL部分补丁的列表及下载地址(持续更新)

    整理了MSSQL部分补丁的列表及下载地址(截至2016-11-18),供参考下. Edition Version Date Published Download Link SQL Server 201 ...

  9. SqlDataReader和SqlDataAdapter

    SqlDataReader 高效,功能弱,只读访问SqlDataAdapter 强大,要求资源也大一点 SqlDataReader 只能在保持跟数据库连接的状态下才可以读取... SqlDataAda ...

随机推荐

  1. poj 3608 Bridge Across Islands 两凸包间最近距离

    /** 旋转卡壳,, **/ #include <iostream> #include <algorithm> #include <cmath> #include ...

  2. (Problem 22)Names scores

    Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-tho ...

  3. OC中的类型强制转换

    在Objective-C中,以数字格式组成的字符串经常需要转换为NSNumber对象后再使用.例如有一个字符串对象@"111.22",需要转为NSNumber对象,最简单的方法就是 ...

  4. (IOS)CoreLocation 和 MapKit 的应用

    CoreLocation是控制GPS硬件获取地理坐标信息的系统类库,而MapKit是系统地图的工具包,将两者结合使用可以实现不同的地图功能. 1.CoreLocation 在CoreLocation中 ...

  5. 【转】C++常见错误大全

    原文转自:http://hi.baidu.com/qiou2719/item/b9eed949130ff50ec0161331 C++常见错误大全 0. XXXX "is not a cla ...

  6. 转: 如何实现jQuery的Ajax文件上传

    [PHP文件上传] 在开始之前,我觉得是有必要把通WEB上传文件的原理简单说一下的.实际上,在这里不管是PHP,JSP,还是ASP处理上传的文件,其实都是WEB早已把文件上传到服务器了,我们只是运用上 ...

  7. perl学习(3) 列表

      列表或称为数组,和c语言中的数据类似,只是perl自己特殊的一些写法. 1.1.定义 一个列表或者数组可以包含数字,字符串,undef 值,或者任意不同类型的标量值的组合,但是这些元素的类型通常是 ...

  8. 一旦配置oracle em经验

    对oracle10grac构造em,原本很easy事儿,但它需要一个很长的时间,记录下来.MEMO. 首先,例如,报告了以下错误: [oracle@node1 admin]$ emca -config ...

  9. java 简单的数据增删该查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  10. reason: 'unable to dequeue a cell with identifier Cell

    今天在cell重用的时候出现一下错误 reason:  'unable  to  dequeue  a  cell  with  identifier  Cell  -  must  register ...