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. CentOS6.5安装elasticsearch+logstash+kibana

    首先卸载低版本的java环境,然后安装 java环境和Apache服务 yum install -y java--openjdk httpd 安装ES环境 elasticsearch wget htt ...

  2. android linearlayout imageview置顶摆放

    在练习android时,想在Linearlayout内放一图片,使其图片置顶,预期效果是这样的: 但xml代码imageview写成这样后, <ImageView android:layout_ ...

  3. Apache 2.2 到 2.4的不同

    1.权限设定方式变更 2.2使用Order Deny / Allow的方式,2.4改用Require apache2.2: Order deny,allowDeny from allapache2.4 ...

  4. iOS 拍照保存到相册

    之前看了一些开源的代码,里面有一个功能,就是将图片下载到相册,仔细看了其中的代码,只有很简单的一句话,并且保存过后,还可以判断是否保存成功. 如下代码所示, 点击按钮,将self.imageView上 ...

  5. c++,static 静态成员变量 / 静态成员函数

    静态成员变量: //静态成员变量(static) // //1.如果想在同类的多个对象之间实现数据共享 ,可以用静态 //成员变量,即用static修饰的成员变量,例 static int a; // ...

  6. BZOJ 1798: [Ahoi2009]Seq 维护序列seq( 线段树 )

    线段树.. 打个 mul , add 的标记就好了.. 这个速度好像还挺快的...( 相比我其他代码 = = ) 好像是#35.. ---------------------------------- ...

  7. java 如何自定义异常 用代码展示 真心靠谱

    先建两个自定义的异常类 ChushufuException类 class ChushufuException extends Exception { public ChushufuException( ...

  8. listview 拖动item效果实现

    listview 拖动item效果实现 效果图如下: 拖拽前: 拖拽后: 首先参考源码中:TouchInterceptor 类,该类会在下面给出: 第一步:主类: /**  *   */ packag ...

  9. javascript面向对象创建高级 Web 应用程序

       目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript ...

  10. (Problem 15)Lattice paths

    Starting in the top left corner of a 22 grid, and only being able to move to the right and down, the ...