最近在做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()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。

mysql executereader_ExecuteReader的用法相关推荐

  1. MySQL:讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

    讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果 ...

  2. 【node】express中mysql的基本用法、连接池的使用、事务的回滚

    [node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...

  3. Linux下Mysql的查询用法

    Linux下Mysql的查询用法 一.Mysql的delete删除语法 1.删除数据库 2.删除数据库的表 二.查询数据 1.基本查询 2.条件查询 三.数据库插入数据 1.创建新表 2.插入数据 四 ...

  4. MySQL replace into 用法

    MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果存在,则更新 ...

  5. Mysql临时表的用法 - 51CTO.COM

    Mysql临时表的用法 - 51CTO.COM Mysql临时表我们经常会用到,下面就为您详细介绍Mysql临时表的用法,供您参考,如果您对此方面感兴趣的话,不妨一看. 当工作在非常大的表上时,你可能 ...

  6. mysql中as用法

    重命名列名或者表名. as可理解为:用作.当成,作为:一般是重命名列名或者表名.(主要为了查询方便) 重命名列.如:表text, 列 column_1,column_2 你可以写成: 1 select ...

  7. mysql alter怎么用,mysql alter话语用法

    mysql alter语句用法 //主键 ALTER TABLE tablename add new_field_id int(5) UNSIGNED DEFAULT 0 NOT NULL anto_ ...

  8. pdo mysql limit_PHP mysql中limit用法详解(代码示例)

    在MySQL中,LIMIT子句与SELECT语句一起使用,以限制结果集中的行数.LIMIT子句接受一个或两个offset和count的参数.这两个参数的值都可以是零或正整数. offset:用于指定要 ...

  9. [转载]MySQL exists的用法介绍

    原文摘自:http://www.cnblogs.com/glory-jzx/archive/2012/07/19/2599215.html MySQL exists的用法介绍 有一个查询如下: 1 S ...

  10. mysql group concat 去重,MySQL group_concat() 函数用法

    MySQL group_concat() 函数用法 在使用 group by对数据进行分组后,如果需要对 select 的数据项进行字符串拼接,这时就需要用到group_concat()函数. 1.基 ...

最新文章

  1. cpio.gz文件解压方法
  2. linux shell 语句出错自动退出 调试 检查 脚本
  3. Hp linux tar 解压,tar命令的用法(百度)(HP_UX)
  4. java: jstl.jar和standard.jar的下载地址与使用
  5. java私塾 设计模式 视频_[章节]Java Web开发理论部分视频教程 之 04 mvc设计模式详解视频教程 - 我的学习中心 - 私塾在线 - 只做精品视频课程服务...
  6. 【PS】WBS结算到建工程问题
  7. Ceph 时钟偏移故障处理
  8. QString与中文问题
  9. 程序员们之间的“鄙视链”,程序员底之间无声的战争
  10. 小程序外链跳转web-view系列问题
  11. MySQL与Spring事务隔离级别
  12. 以太坊 比特币 nounce有什么不同
  13. Opencv3 core模块解析之convertTo
  14. Maven私服Nexus安装与使用,鸟哥的linux私房菜pdf百度云
  15. 最好用的Mac任务规划软件【滴答清单】
  16. 让笔记本的无线网卡指示灯不再狂闪的方法
  17. UE4镜头抖动CameraShake
  18. python程序turtle雪人_用turtle画一个雪人
  19. oracle角色(role)和权限(privilege)
  20. 如何查看AD域账号的删除记录

热门文章

  1. SPSS 数据的统计分析
  2. java字典表_SpringBoot中实现数据字典的示例代码
  3. 【从零开始学架构-李运华】01|架构到底是指什么?
  4. 沃特玛采集均衡模块_采集均衡模块以及电池管理系统技术方案
  5. UDP测试工具(ace版本)
  6. LaTex的图文安装--TexLife+SumtraPDF+Vscode
  7. python实现单纯形法(大M法)
  8. ueditor接入秀米编辑器
  9. mobile_net在spyder下载不下来
  10. gaussian 和gaussview_谈谈Gaussian软件中的guess=mix