mysql executereader_“c#”中“ExecuteReader”是什么意思?「建议收藏」

mysql executereader_“c#”中“ExecuteReader”是什么意思?「建议收藏」1、MSDN上说:SendstheCommandTexttotheConnectionandbuildsaSqlDataReader.简单说,就是SqlCommand对象的方法,执行返回数据的Select语句。它的执行方法有两个:第一,ExecuteReader():针对Connection执行CommandText,并返回DbDataReader。第二,ExecuteReade…

大家好,又见面了,我是你们的朋友全栈君。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151493.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用proxy实现一个更优雅的vue

    用proxy实现一个更优雅的vue

    2021年6月7日
  • Hbase面试题(持续更新)「建议收藏」

    Hbase面试题(持续更新)「建议收藏」1、每天百亿数据存入HBase,如何保证数据的存储正确和在规定的时间里全部录入完毕,不残留数据1)百亿数据:证明数据量非常大2)存入HBase:证明是跟HBase的写入数据有关3)保证数据的正确:要设计正确的数据结构保证正确性4)在规定时间内完成:对存入速度是有要求的那么针对以上的四个问题我们来一一分析1)数据量百亿条,什么概念呢?假设一整天60x60x24=86400秒都在写入数据,那么每秒的写入条数高达100万条,HBase当然是支持不了每秒百万条数据的,所以这百亿条数据可能不是通过实时

    2022年5月31日
  • 导出微信聊天记录并生成词云[通俗易懂]

    导出微信聊天记录并生成词云转载于:https://www.cnblogs.com/littlehb/p/9473986.html

    2022年4月8日
  • pycharm入门教程(非常详细)_php网站部署教程

    pycharm入门教程(非常详细)_php网站部署教程最全Pycharm教程(1)——定制外观  最全Pycharm教程(2)——代码风格  最全Pycharm教程(3)——代码的调试、运行  最全Pycharm教程(4)——有关Python解释器的相关配置  最全Pycharm教程(5)——Python快捷键相关设置  最全Pycharm教程(6)——将Pycharm作为Vim编辑器使用  最全Pyc

    2022年8月29日
  • 无锡梅里旅游策划方案——中国第一锡宫!

    无锡梅里旅游策划方案——中国第一锡宫!无锡梅里旅游策划方案——中国第一锡宫!熊大寻旅游策划公司/文无锡梅里古都”,位于无锡新区梅村,是吴文化的发祥地。梅村古名梅里,早在三千二百多年前,西周周太王长子泰伯,为达成父王想立三子季历的愿望,偕二弟仲雍托辞采药,夜奔江南,拴马于枯树桩。到清早,见枯枝上梅花朵朵,喜出望外,顿悟此地当为宝地。于是为其取“梅里”之名,定居于此。勾吴之国,由此发端。因泰伯三让两家天下,孔子称其为“至德”,司马迁的…

    2022年6月1日
  • IntelliJ IDEA 2021.5.2 x64激活码【在线注册码/序列号/破解码】「建议收藏」

    IntelliJ IDEA 2021.5.2 x64激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号