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

简单说,就是SqlCommand对象的方法,执行返回数据的Select语句。它的执行方法有两个:

第一,ExecuteReader():针对Connection执行CommandText,并返回DbDataReader。

第二,ExecuteReader(CommandBehavior behavior):针对Connection执行CommandText,并使用CommandBehavior值之一返回DbDataReader。

2、实例代码

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_“c#”中“ExecuteReader”是什么意思?相关推荐

  1. 自定义tt文本模板实现MySql指数据库中生成实体类

    自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击"添加"/"新建项",选择"文本模板",输入名称后点击添加. 2. ...

  2. MySQL 5.6中如何定位DDL被阻塞的问题

    在上一篇文章<MySQL 5.7中如何定位DDL被阻塞的问题>中,对于DDL被阻塞问题的定位,我们主要是基于MySQL 5.7新引入的performance_schema.metadata ...

  3. mysql 执行cmd,mysql命令行中执行sql的几种方式总结

    1.直接输入sql执行 MySQL> select now(); +---------------------+ | now() | +---------------------+ | 2013 ...

  4. mysql的调用有哪三种方式_MySQL数据库之mysql命令行中执行sql的几种方式总结

    本文主要向大家介绍了MySQL数据库之mysql命令行中执行sql的几种方式总结 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.直接输入sql执行 MySQL> se ...

  5. mysql修改表中某个字段的默认值

    Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结 在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或 ...

  6. MySQL 5.7中的更多改进,包括计算列

    让我们继续上一周的内容,讨论MySQL 5.7中的新特性,我们将把注意力集中于新的安全方面的特性.首先,新版本中取消了mysql_old_password这个认证插件.其实这个插件从版本4.x开始就已 ...

  7. MariaDB/MySQL从数据库中选择随机的行

    MariaDB/MySQL从数据库中选择随机的行 一个比较传统的做法是使用sql自带的rand函数,从而达到随机排序的目的. SELECT column FROM table ORDER BY RAN ...

  8. mysql init-file参数中语句限制

    mysql 启动选项中的init-file文件的内容目测只能是dml语句,不能包含ddl,否则执行就会报错,但不影响启动本身..太扯了..

  9. MySQL和Oracle中的隐式转换

    今天在处理一个问题的时候,需要根据其他部门提供的sql语句对一个表中的数据进行了筛查. 语句类似下面的形式 > SELECT MAX_LEVEL,LOGOUT_TIME,CURRENT_DATE ...

最新文章

  1. 继人工智能攻陷围棋,德州扑克也沦陷了
  2. C++入门之常量与变量
  3. Linux系统下按了Ctrl+s锁定屏幕后怎么办?
  4. vba xml 怎么设置父节点_熊二做了一个xml报文处理的开源库easyxml
  5. SQL语句使用大全,最常用的sql语句
  6. hdoj 5934 强连通分量+缩点 模版题(Java版)
  7. CTF之Bugku网站被黑
  8. PS2无线遥控手柄的通讯协议以及c语言代码分析
  9. mysql数据库教程级联_Mysql实现级联操作(级联更新、级联删除)
  10. fMRI中自发性短暂脑网络交互的行为相关性
  11. 【Pytorch基础教程34】EGES召回模型
  12. BAT脚本: ping检测网络稳定性 与 取命令结果的指定行方法 与 将变量内容追加写入txt文件方法
  13. 分布式与集群的区别?
  14. 分享一个免费的计算机书籍资料网站(含有编程语言,算法,人工智能,游戏开发等书籍资料)
  15. RabbitMq设置可视化界面
  16. Bing Test -必应每日壁纸自动换
  17. 闲人的命令执行漏洞基础学习1
  18. 接口练习--设计一个辅助英雄 接口实现技能治疗
  19. 怎么做到new String(abc) == new String(abc)双等号为true呢?不是使用equals哦
  20. Android初学之自定义简单蛛网(雷达)图

热门文章

  1. 雅思作文_教育类(一)
  2. 百度SEO老域名历史批量查询软件
  3. 剪辑视频的方法和步骤 剪辑视频基本技巧有哪些
  4. python变量后加点和函数_教你玩转Python函数和变量
  5. 复制粘贴发明人、Java 和互联网创建者相继去世
  6. SQL Server通配符
  7. 手游pubg怎么修改服务器,PUBG怎么调设置 | 手游网游页游攻略大全
  8. 【100%通过率】华为OD机试真题 Python 实现【真正的密码】【2022.11 Q4 新题】
  9. 数学之美:神奇的杨辉三角形,比帕斯卡早了近600年,致敬中国古代数学家(63)
  10. 苹果6s系统升级无服务器,iPhone6s升级至iOS13,如果没换新电池,最好别更新