如何使用ADO.NET DataReader检索数据
这篇文章主要介绍了如何使用ADO.NET DataReader检索数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
使用ADO.NET DataReader检索数据包括创建Command对象的实例,然后通过调用Command.ExecuteReader创建一个DataReader,以便从数据源检索行。下面的示例演示如何使用ADO.NET DataReader检索数据,其中reader表示有效的DataReader,而command表示有效的Command对象。
reader=command.ExecuteReader();
使用DataReader对象的Read方法可从查询结果中获取行。通过向DataReader传递列的名称或序号引用,可以访问返回行的每一列。不过,为了实现***性能,DataReader提供了一系列方法,将使您能够访问其本机数据类型(GetDateTime、GetDouble、GetGuid、GetInt32等)的列值。有关数据提供程序特定的DataReaders的类型化访问器方法列表,请参见OleDbDataReader和SqlDataReader。假定基础数据类型为已知,如果使用类型化访问器方法,将减少在检索列值时所需的类型转换量。
.NETFramework的WindowsServer2003版包含DataReader的附加属性HasRows,该属性使您能够在读取DataReader之前就可确定它是否返回了任何结果。以下代码示例循环访问一个DataReader对象,并从每个行中返回两个列。
PrivateSubHasRows(ByValconnectionAsSqlConnection) Usingconnection DimcommandAsSqlCommand=NewSqlCommand(_ "SELECTCategoryID,CategoryNameFROMCategories;",_ connection) connection.Open() DimreaderAsSqlDataReader=command.ExecuteReader() Ifreader.HasRowsThen DoWhilereader.Read() Console.WriteLine(reader.GetInt32(0)_ &vbTab&reader.GetString(1)) Loop Else Console.WriteLine("Norowsfound.") EndIf reader.Close() EndUsing EndSub
DataReader提供未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在ADO.NET DataReader检索数据过大时,DataReader是一种适合的选择。关闭DataReader。每次使用完DataReader对象后都应调用Close方法。如果Command包含输出参数或返回值,那么在DataReader关闭之前,将无法访问这些输出参数或返回值。
请注意,当DataReader打开时,该DataReader将以独占方式使用Connection。在原始DataReader关闭之前,将无法对Connection执行任何命令(包括创建另一个DataReader)。不要在类的Finalize方法中对Connection、DataReader或任何其他托管对象调用Close或Dispose。在终结器中,仅释放类直接拥有的非托管资源。如果类不拥有任何非托管资源,则不要在类定义中包含Finalize方法。
感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用ADO.NET DataReader检索数据”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341