最近在做winform的编程,想到一真没有使用过ExecuteReader。可能以前以后它的用户不大,或者

不大好用,故没有用过。今天在这里将学习记录写下来,供读者参考:

1、MSDN上说:Sends the CommandText to the Connection and builds a SqlDataReader.

(这句话就不翻译了)

2、实例片段:

[C#]
public void CreateMySqlDataReader(string mySelectQuery, SqlConnection myConnection)
{

string sql;//sql语句
    SqlCommand myCommand = new SqlCommand(sql, myConnection);
    myConnection.Open();
    SqlDataReader myReader;
    myReader = myCommand.ExecuteReader();
    try
    {
      while(myReader.Read())
      {
        Console.WriteLine(myReader.GetString(0));
      }
    }
    finally
    {
      myReader.Close();
      myConnection.Close();
    }
}

3、下面说说它的用法:

①:

用法:ExecuteReader 方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果。ExecuteReader 返回一个                 DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader;如果在OleDbCommand对象中调用,返回的是OleDbDataReader。可以调用DataReader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对SqlDataReader.Read的每次调用都会从结果集中返回一行。

②:

这是出自我平时所用的时候的一些认识:那就是如果我们在进行数据操作时,如果没有数据可操作,那么我们只能使用ExecuteReader()这个CMD,而executeNoeQuery()与Executescalar()如果在没有数据的时候使用时,就会出错“对像没有实例化”的错误。所以我们在判断是否有数据时,只可以用ExecuteReader()中的REad()方法来检测。

④:

DataReader还有一个GetValue方法可以用来检索字段的值。GetValue返回一个一般性的Object,但是被无数个返回强类型的Get方法补充,比如GetInt32和GetDecimal(参考MSDN2005)。对GetOrdinal的调用是必须的,因为GetDecimal只接受整型索引。GetOrdinal所做的工作正好与GetName相反——它把字段名转换成数字索引。

注意:DataReader必须处理Close方法。

using System.Data.SqlClient;

...

SqlConnection conn = new SqlConnection(@"server=ws7\leosql;database=AdventureWorks;uid=sa;pwd=lixiang@");

try

{

conn.Open();

SqlCommand cmd = new SqlCommand("SELECT * FROM titles WHERE advance != 0", conn);

SqlDataReader reader = cmd.ExecuteReader();

int index = reader.GetOrdinal("advance");

while(reader.Read())

Console.WriteLine("{0:c}", reader.GetDecimal(index));

=================================

-- Console.WriteLine(reader.GetName(0));

=================================

''reader.Close();''

}

catch(SqlException ex)

{

Console.WriteLine(ex.Message);

}

finally

{

========================================================

-- 可以配置DataReader,使它真的可以关闭一个底层连接

-- reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

========================================================

conn.Close();

}

⑤:

现在来强调下:现在来说下ExecuteReader的read()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。

一般用在判断这行的结果集是否有效果,有的话就执行下面的操作。一句话:一般用于判断返回的结果。
完:请高手给予指点

转载于:https://www.cnblogs.com/zhchongyao/archive/2010/05/15/1735926.html

数据库操作重点总结记录 ExecuteReader OleDbDataReader...相关推荐

  1. 数据库操作总结和记录

    ** 数据库相关操作 ** 对数据库的操作 一.创建个数据库 create database 库名; 二.进入/切换数据库 use 库名; 三.重命名数据库 一经创建,不可修改 四.删除库文件 dro ...

  2. JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码

    转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...

  3. mysql---mysql查看数据库操作记录

    mysql查看数据库操作记录 MySQL的查询日志记录了所有MySQL数据库请求的信息.无论这些请求是否得到了正确的执行.默认文件名为hostname.log.默认情况下MySQL查询日志是关闭的.生 ...

  4. mysql操作数据库的步骤,Golang操作MySql数据库的完整步骤记录

    前言 MySQL是业界常用的关系型数据库,在平时开发中会经常与MySql数据库打交道,所以在接下来将介绍怎么使用Go语言操作MySql数据库. 下载MySql连接驱动 Go语言中的database/s ...

  5. mysql(版本5.7)(操作数据库 操作表结构 操作表记录)

    数据库中以表为基本单位,进⾏存储数据.那么使⽤我们熟悉的java类 与 数据表对⽐,就会发现以下对应关系. 表记录与java类的对应关系: Java 数据库 类 表 定义的成员变量 字段(列) 对象 ...

  6. C# ACCESS数据库操作类

    这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的调用可以参考MSSQL那个类的调用,差不多的,只是提取所有记录的数量的时候有多一个参数,这个需要注意一下! c# ...

  7. 利用COM+对数据库操作进行单元测试

    当单元测试需要对数据库执行CRUD(Create,Retrieve,Update,Delete)操作时,测试过后会在我们的数据库中留下大量重复的垃圾数据,这些垃圾很碍眼不是吗?而且我们的下一个测试有可 ...

  8. Python的数据库操作(Sqlalchemy)

    ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...

  9. 小博老师解析Java核心技术 ——JDBC数据库操作类封装

    2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(七)-ROS介绍和Turtlesim包的使用
  2. Easyui 让Window弹出居中与最大化后居中
  3. 机械革命重装Win10系统后独立显卡驱动故障问题解决
  4. Angular ng-content元素的学习笔记
  5. arcgis python 教程-按区域消除--arcgis python实例教程
  6. 使用dropwizard(5)--加入swagger
  7. GitHub 引入缺陷和Pull Request 模版,并支持直接上传文件
  8. 【图像融合】基于matlab GUI拉普拉斯金字塔+小波变换图像融合【含Matlab源码 857期】
  9. 基本概念学习--TaskList(任务列表)
  10. 迅捷pdf虚拟打印机怎么安装打印
  11. linux下nmon的安装及使用教程
  12. 推荐一款不错的杀毒软件,还在找卡巴激活码的网友不妨进来看看!
  13. Ubuntu16.04+Cuda9.0+Cudnn7.0+python2.7+Caffe
  14. 对于von Mises distribution(冯·米塞斯分布)的一点心得
  15. 五千字!详细解读链家「难而正确的事」
  16. Android 打开系统文件管理器选择文件
  17. 2012年10月第3周(10.15-10.21)
  18. 华硕笔记本能通用的BIOS型号
  19. 802.1x EAP(证书)、PEAP(证书、EAP-MSCHAP v2)认证配置(NPS、组策略)
  20. LINUX中的七种文件类型

热门文章

  1. WIN2000控制面板的添加删除程序不能正常运行时的修复
  2. 破解HLS低延时的密匙: HLS+技术解密(一)
  3. 解决安卓微信无法调用相机
  4. 全国各地的程序员特点分析,搞笑幽默--快来对号入座
  5. 关于css碎知识点(2)
  6. Android 开关按钮 ToggleButton 与 Switch 的使用
  7. 独立游戏demo-FoodStall3.0
  8. C语言人五英尺七英寸,5呎7吋 是多高?
  9. 我的世界服务器自定义怪物使用,我的世界自定义怪物
  10. JAVA Collections类