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

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

ExecuteReader的用法相关推荐

  1. ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法-转

    转载于http://www.cnblogs.com/asdyzh/p/9741641.html ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法-转 ...

  2. ExecuteNonQuery()的用法

    ExecuteNonQuery()的用法 下面我们将详细讲解如何在Page_Load()中对数据库的增加.删除.修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar ...

  3. ExecuteNonQuery、ExecuteScalar、Dataset、ExecuteReader的不同意思和用法

    ExecuteNonQuery.ExecuteScalar.Dataset.ExecuteReader的不同意义和用法 1. ExecuteNonQuery 方法执行 一个非查询语句( Update ...

  4. ExecuteNonQuery(),ExecuteDataSet() ,ExecuteReader() ,ExecuteScalar(),DataTable() 用法

    一.ExecuteNonQuery方法 :执行非查询SQL操作,包括增insert.删delete.改update:ExecuteNonQuery()方法执行SQL语句并且不返回数据. public ...

  5. UML类图关系大全 and 报表的基本用法

    UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在 GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描 ...

  6. keyvaluepair_C# KeyValuePairTKey,TValue的用法【转】 .

    KeyValuePair可以这样实例化 KeyValuePair mcmillan = new KeyValuePair("McMillan", 99); 取值 Console.W ...

  7. keyvaluepair_KeyValuePair用法(转)

    C# KeyValuePair的用法.结构体,定义可设置或检索的键/值对.也就是说我们可以通过 它记录一个键/值对这样的值.比如我们想定义一个ID(int类型)和Name(string类型)这样的键/ ...

  8. Dapper基础用法

    假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.点击下载 Dapper的优势: 1,Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,编 ...

  9. 从petshop中一实例谈using 的三种用法

    在petshop4.0中有这样一段代码: Code  1        public IList<CategoryInfo> GetCategories() {  2  3   IList ...

最新文章

  1. 分享Silverlight新鲜事(11月15日-21日) - PDC 10 Downloader
  2. 加密软件漏洞评测系统_所有雷电接口电脑5分钟内即可破解,漏洞无法软件修复,微软Surface笑了...
  3. 【点分治】Tree(luogu 4178/金牌导航 点分治-1)
  4. python爬虫网络请求超时_Python网络爬虫编写5-使用代理,处理异常和超时
  5. 秒杀场景_多线程异步抢单队列分析与实现_02
  6. VM12即VMware Workstation 12 序列号
  7. 浙江省等保测评机构项目测评收费价格标准参考
  8. Nature Biotechnol | 李家洋/余泓团队利用平铺删除策略打破性状连锁,突破水稻产量瓶颈...
  9. 最清晰易懂的MinMax算法和Alpha-Beta剪枝详解
  10. linux ps-e和-ax区别,Linux编程 6 (查看进程 ps 及输出风格)
  11. 计算机教学中心理反思,多媒体教学反思
  12. 什么是关键业务(Mission Critical)?
  13. Python namedtuple ——具名元组
  14. 接口测试工具soapUI(一)
  15. 耗时两周的P2PQQ终于完成了!!!
  16. 西南师范大学网络教育学院2002秋毕业论文选题表
  17. TCP丢包原因、解决办法
  18. 互联网采集数据有哪几种常见的方法?
  19. C++ 解决string转为char*中文乱码问题
  20. H5 直播的疯狂点赞动画是如何实现的?

热门文章

  1. ⑧(网络篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
  2. Arcmap批量统一修改多图层样式
  3. python删除文件夹里损坏的图片
  4. 1月外贸新规,请注意查收
  5. 你有一份经典SQL语句大全,请注意查收!!!
  6. root权限破解有什么用,root权限破解有什么用处
  7. 压缩感知重构算法之基追踪(Basis Pursuit, BP).基追踪并不能称为一个具体的算法,而是一种最优化准则,可以有很多实现方式,我认为指的是L0可以变为L1的准则
  8. Win8系统运行软件需要以管理员身份运行怎么办?
  9. 神秘SHEIN,一个千亿美元公司复合式创新的故事
  10. 第六课 田中さんは新聞を読みます。