您的位置首页百科知识

“c#”中“ExecuteReader”是什么意思?

“c#”中“ExecuteReader”是什么意思?

的有关信息介绍如下:

“c#”中“ExecuteReader”是什么意思?

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