问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#中ExecuteReader是什么意思?怎么用?

发布网友 发布时间:2022-04-07 22:05

我来回答

2个回答

热心网友 时间:2022-04-07 23:35

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

热心网友 时间:2022-04-08 00:53

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()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见陌生女人在水里生下男孩,男孩很聪明,但是陌生女人夫妇把男孩当女... oppohd通话怎么关掉 oppohd通话如何关掉 华为手机密码忘记了如何解锁? 某校高一化学研究性学习小组对日常生活中的氯气用途进行了调查,了解到... 怎样使用微软的传输助手进行文件打印? 苏氏宗祠地址在哪里? 苏圩镇苏氏宗祠 苏氏祠堂广西南宁市江南区苏氏祠堂 关于秋梅的诗句有哪些? 晃晃麻将玩法介绍 手机如何收看电视剧? 安卓怎么截屏oppo 魏笑的简介 魏笑的人物经历 北京奇幻彩蛋影视传媒有限公司怎么样? 著名主持人魏笑,结婚第二天就去世了,魏笑去世的原因是什么? 中国有几个农民当市长 北广之星的卓越培训成果 中国各市的市长 她是著名主持人,和男友领完证第二天车祸离世,丈夫为她终生不娶,她是谁? 全国有几个叫祁骥的 哪位主持人结婚36小时就意外离世,丈夫至今未娶? 祁骥现在结婚了吗 中国现在有多少正职女市长?? 主持人魏笑为什么只当了24小时新娘? 中国哪些城市的市长姓张 她当一天新娘便离世,时光永远停留在25岁,为什么如今丈夫仍在婚房等候? 最美主持人魏笑,只做两天新娘,婚礼变葬礼,丈夫为她至今未娶,为何? 谁能告诉我中国每个省会城市的市长名字? 著名主持人魏笑新婚24小时离世,丈夫至今未娶,父亲仍在怀念她,你咋看? 刚上厕所看到一女生的穿格子黑丝,你们怎么看 怎样在手机上看电视剧人世间 女性穿黑丝丢厕所是啥意思? 读书有三上:马上、枕上、厕上。自拍有三上:车上、___、___。 word 空格 失灵 为什么键盘敲出来的字,在word文档上按空格键却无法显示字呢? 为什么男人喜欢偷拍女人入厕,而女人不会去偷拍男厕呢? 53岁男子跪地*女厕所反被拍下,当事女子发声,此事最终是如何解决的? 在公司厕所拍到这个是信号屏蔽器吗? 在WORD中编辑文档,在自动换行的第二行,为什么敲空格键没有反应? 在word中为什么会出现某一行敲不了空格键? 关于纪念鲁迅的文章!!! 一篇纪念鲁迅去世的文章《朋友》 怎样用PS做动作来批量裁剪图片 描写纪念鲁迅的作品 急 ps如何在多张图片中裁其中一张? 我们曾经学过纪念鲁迅的文章有 一篇郭沫若悼念鲁迅的文章 能给一些模具钢的种类吗? 那些作家写过纪念鲁迅先生的文章