.NET中的DataReader简介

工业嵌入式系统电源路径保护设计实战 电源路径保护是工业嵌入式系统可靠运行的基础技术,其核心在于将传统被动防护升级为具备状态感知、动态响应与闭环控制能力的智能供电管理。基于可编程电子保险丝(eFuse)与低功耗MCU协同架构,可实现毫秒级故障识别、多级限流响应及宽温域精度补偿,显著提升设备在雷击、浪涌、EMI等复杂工况下的鲁棒性。该方案广泛适用于无人值守边缘终端、防爆环境数据采集、变电站监测等高可靠性工业应用场景,尤其契合对MTBF、远程诊断与长期免维护有严苛要求的嵌入式工业应用。 阅读详情

 

 

摘要

本文介绍了ADO.NET中的一个重要的对象DataReader,简单的举例说明了DataReader的使用方法。

 

目录

1. ADO.NET概览

2. DataReader的使用方法

3. 小结

 

1. ADO.NET概览

在说明主题之前,简单的介绍一下ADO.NET。ADO.NET有两个核心组件:DataSet和.NET data provider,.NET data provider被用来连接数据库,执行SQL命令以及检索数据集。

.NET Framework包括SQL Server .NET Data Provider(面向Microsoft SQL Server 7.0及以后版本)和OLE DB .NET Data Provider,SQL Server .NET Data Provider在连接和处理SQL Server数据库时是最高效的,因为它使用了特别针对SQL Server的协议和优化处理,在System.Data.Sqlclient名称空间中包含了所有的SQL Server .NET Data Provider类 。OLE DB .NET Data Provider用来支持OLE DB接口。ADO.NET可以提供以下OLE DB Providers:SQLOLEDB - Microsoft OLE DB Provider for SQL Server ; MSDAORA - Microsoft OLE DB Provider for Oracle ; Microsoft.Jet.OLEDB.4.0 - OLE DB Provider for Microsoft Jet。System.Data.Oledbclient名称空间包含了所有的OLE DB .NET Data Provider类 。因此在程序中要包含你想要的Data Provider的名称空间。

 

使用SQL Server .NET Data Provider时引入的代码:

[Visual Basic]
Imports System.Data.SqlClient
[C#]
using System.Data.SqlClient;

使用OLE DB .NET Data Provider时引入的代码:

[Visual Basic]
Imports System.Data.OleDb
[C#]
using System.Data.OleDb;

 

.NET data provider包含4个主要的对象:Connection、Command、DataReader、DataAdapter。

 

Connection类用来建立数据库连接。

如果Provider是SQL Server的话就可以使用如下代码

[Visual Basic]

Dim adoConn As SqlConnection = New SqlConnection("Data source=DBServer;initial catalog=Northwind;persist security info=True;user id=sa")

[C#]

SqlConnection adoConn = new SqlConnection("Data source=DBServer;initial catalog=Northwind;persist security info=True;user id=sa");

否则Provider是OLE DB的话就可以使用如下代码

[Visual Basic]

Dim adoConn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind")

[C#]

OleDbConnection adoConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind ");

 

Command类用来执行SQL命令或存储过程。

 

DataReader类用来从数据库检索一种只读的且指针只能前移的数据流,根据.NET Data Provider的不同,DataReader分为SqlDataReader Class和OleDbDataReader Class两种。

SqlDataReader

[Visual Basic]

Dim sqlMyReader As SqlDataReader = cmdMyCommand.ExecuteReader()

[C#]

SqlDataReader sqlMyReader = cmdMyCommand.ExecuteReader();

OleDbDataReader

[Visual Basic]

Dim oleMyReader As OleDbDataReader = cmdMyCommand.ExecuteReader()

[C#]

OleDbDataReader oleMyReader = cmdMyCommand.ExecuteReader();

 

DataAdapter类用来填充Dataset和更新数据源。

 

2. DataReader的使用方法

DataReader是我要着重描述的部分,因为使用DataReader可以提高应用程序的性能,是将数据输出到表示层重要的手段。以DataReader为主的数据访问关系可以用下图表示

 

在创建了一个Command对象之后,通过调用Command.ExecuteReader方法再创建DataReader对象,就能够使用Read方法从数据源检索记录集了。最后,需要着重指出的是在使用完DataReader后应该显式的关闭DataReader对象。下面的代码是使用SqlDataReader的样例,从罗思文数据库中进行简单数据查询。

Imports System

Imports System.Data

Imports System.Data.SqlClient

Imports Microsoft.VisualBasic

 

Public Class DataReaderSample

 

    Public Shared Sub Main()

        Dim sqlConn As SqlConnection = New SqlConnection("data source=DBServer;initial catalog=Northwind;persist security info=True;user id=sa")

 

        Dim sqlCmd As SqlCommand = sqlConn.CreateCommand()

        sqlCmd.CommandText = "SELECT EmployeeID, LastName , FirstName FROM Employees"

 

        sqlConn.Open()

 

        Dim sqlReader As SqlDataReader = sqlCmd.ExecuteReader()

        Dim intFor As Int32

        For intFor = 0 To sqlReader.FieldCount - 1

            Console.Write(String.Format("{0,-20:G}", sqlReader.GetName(intFor)))

        Next

 

        Console.WriteLine()

 

        Do While sqlReader.Read()

            Console.WriteLine(String.Format("{0,-20:G}{1,-20:G}{2,-20:G}", sqlReader.GetInt32(0), sqlReader.GetString(1), sqlReader.GetString(2)))

        Loop

 

        sqlReader.Close()

        sqlConn.Close()

        Console.Read()

    End Sub

End Class

图表1.SqlReader执行的检索结果

 

同样的也可以让Command对象执行SQL批,从而检索多个记录集,此时调用DataReader的NextResult方法读取下一个SQL批产生的数据。

Imports System

Imports System.Data

Imports System.Data.SqlClient

Imports Microsoft.VisualBasic

 

Public Class DataReaderSample

 

    Public Shared Sub Main()

        Dim sqlConn As SqlConnection = New SqlConnection("data source= DBServer;initial catalog=Northwind;persist security info=True;user id=sa")

 

        Dim sqlCmd As SqlCommand = sqlConn.CreateCommand()

        sqlCmd.CommandText = "SELECT EmployeeID, LastName , FirstName  FROM Employees;SELECT CategoryID, CategoryName, Description FROM Categories"

 

        sqlConn.Open()

 

        Dim sqlReader As SqlDataReader = sqlCmd.ExecuteReader()

        Dim intFor As Int32

        Dim blnNextResult As Boolean = False

 

        Do While Not blnNextResult

            For intFor = 0 To sqlReader.FieldCount - 1

                Console.Write(String.Format("{0,-20:G}", sqlReader.GetName(intFor)))

            Next

 

            Console.WriteLine()

 

            Do While sqlReader.Read()

                Console.WriteLine(String.Format("{0,-20:G}{1,-20:G}{2,-20:G}", sqlReader.GetInt32(0), sqlReader.GetString(1), sqlReader.GetString(2)))

            Loop

 

            Console.WriteLine()

 

            blnNextResult = Not sqlReader.NextResult()

        Loop

 

        sqlReader.Close()

        sqlConn.Close()

        Console.Read()

    End Sub

End Class

图表2.SqlReader的SQL批执行的检索结果

 

3. 小结

这篇文字是面向初学者的,我想通过阅读它,让喜爱.NET的入门人士都会对ADO.NET和其中的DataReader有个大致的了解,并成功的编写出.NET代码。

 

 

 

C#中OLEDB数据库操作详解与实践 本文还有配套的精品资源,点击获取 简介:本教程详述了如何使用OLEDB接口在C#中进行数据库操作,涵盖连接、SQL命令执行和结果读取等核心概念。包括使用 OleDbConnection 建立数据源连接、 OleDbCommand 执行数据库命令以及 OleDbDataReader 获取查询结果。同时,强调了参数化查询的重要性以避免S... 阅读详情

相关推荐

如何设置OleDbDataReader关闭连接

如何设置OleDbDataReader关闭连接 编程小实例,C++.net源代码编写

DataReader和DataAdapter的区别

DataReader是一个向前的指针,本身并不包含数据,调用一次Read()方法它就向前到下一条记录,一个DataReader必须单独占用一个打开的数据库连接!在使用 OleDbDataReader 时,关联的 OleDbConnection 正忙于为 OleDbDataReader 服务,对leDbConnection 无法执行任何其他操作。除非调用 OleDbDataRe...

weixin_34310785的博客 624

C# OleDbDataReader快速数据读取方式(3种)

主要介绍了C# OleDbDataReader快速数据读取方式(3种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

ado.net详细研究

最近阅读了wrox的高效掌握 ADO.NET,有所感触,希望与大家分享。第一次写文章,不好请谅解。 第一篇:ADO.NET的概念 ADO.NET中间包含以下常见类: · Connection · Command · DataAdapter · DataReader · DataSet 1 Connection类 数据库Connection类提供与数据库的连接。.net里面有OleDbConnect

zhfkhx的专栏 1104

AgentFlow:模块化智能体框架与Flow-GRPO强化学习实战解析

在人工智能领域,大语言模型(LLM)与智能体(Agent)技术正推动着自动化任务处理的发展。其核心原理在于通过规划、执行与反馈的循环,使AI系统能够自主调用工具解决复杂问题。这一技术的价值在于突破单一模型的局限性,实现更可靠的多步骤推理。在实际应用中,智能体框架需要处理搜索、代码执行、数学计算等多种场景。本文聚焦的AgentFlow框架,正是通过模块化设计将智能体拆分为规划者、执行者、验证者和生成者四个专家模块,并引入Flow-GRPO强化学习算法进行流程内优化。该框架在搜索增强与工具调用等任务上展现出显著

weixin_42311427的博客 369

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 997

OleDbDataReader数据读取器

如果只想读取数据(而不更新数据),则不必将它存储在数据集内。相反,可以直接从数据库读出数据并读入应用程序这时可以使用数据读取器来操作,可以使代码简单化。 如果程序需要通过查询结果执行连续的只读传递,则可以使用数据读取器对象来代替填充数据集。数据读取器对象从数据源获取数据,并将这些数据直接传递给应用程序。通常,数据读取器对象用于当不需要在数据集内缓存数据时对数据进行只读、只能向前的访问。(数据适配...

weixin_33895657的博客 291

告别手动维护!教你用SAP BAPI批量更新生产订单BOM组件(CO02工单)

本文详细介绍了如何利用SAP BAPI实现生产订单BOM组件的批量更新,解决传统手工操作(如CO02工单)效率低下的问题。通过核心函数解析和批量处理框架设计,帮助用户大幅提升工作效率,降低错误率,适用于物料主数据变更、季节性配方调整等场景。

weixin_30844577的博客 561

ADO.Net SqlDataReader类

ADO.Net的类用于从SQL Server数据库读取数据。它从SQL Server数据库读取仅前面行的数据流中的数据。它是封闭的类,所以不能被继承。它继承了类并实现了接口。C#ConnectionDepthFieldCountHasRowsIsClosedClose()DateTimeDecimalDataTableRead()要创建一个实例,则必须调用SqlCommand对象的方法。

unber的博客 774

软考备考:《系统规划与管理师教程》(第2版)第2章——数字ZG与数智化发展

🔴数字化转型的定义:数字化转型是建立在数字化转换、数字化升级基础上,进一步触及组织核心业务,以新建一种业务模式为目标的高层次转型。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 960

深度学习在传感器数据分析中的创新应用

传感器是物理世界与数字世界的“接口”,其生成的高维、时序、多源数据蕴含着设备状态、环境变化、用户行为等关键信息。传统传感器数据分析依赖手工特征工程与简单机器学习模型,难以应对复杂场景下的非线性、长程依赖与实时性需求。深度学习通过自动特征提取非线性建模与端到端学习,成为传感器数据处理的革命性工具。本文从概念基础理论框架架构设计实现机制到实际应用,系统拆解深度学习与传感器数据的融合逻辑,结合工业预测维护医疗健康监测智能交通等场景,揭示其技术边界与未来演化方向。

大数据洞察的博客 568

ADO.NET当中的DataReader的使用总结

对学习.net的人来说ADO.NET应当是不陌生了,不过我在这里还是想总结一下关于DataReader的使用DataReader包括了两种形式:SqlDataReader和OleDbDataReader,其中很多的用法和属性都是相通的。首先DataReader从数据库当中检索只读,只进的数据流,它也存储在客户端的网络缓冲区当中。且它在内存当中只是存储一行,开销小,速度快。它返回的只是一条记录,我们

feng2375的专栏 1237

【行为决策模块项目实战】解耦控制--多控制器管理与切换的方法(附C++代码)

[请添加图片描述](https://img-blog.csdnimg.cn/c11300d9e4fe421e9070f474a468d1db.jpeg)本文先对多控制器管理与切换的方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容VERTICAL_VEL, //垂直速度PID控制器VERTICAL_POS, //垂直位置PID控制器HORIZONTAL, //水平速度PID控制器YAW, //航向角yaw位置逻辑控制器。

qq_35635374的博客 1211

ADO.NET中的DataReader与DataSet

先看一下视频中讲的这章的框架:        在这里重点讲述一下DataReader 和DataSet。      一,DataReader:     1,简单介绍:DataReader对象是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量数据。DataReader对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时DataRead

学会改变自己——才能突破 7171

【AI大模型:前沿】46、AI+无人机:智能飞行革命全景指南——从技术突破到行业应用与未来趋势

AI+无人机的融合不仅是技术迭代,更是“空间生产力”的革命——它将人类活动范围从地面拓展至低空,重构物流、农业、应急等行业的生产方式。当前,技术突破(如多模态感知、群体智能)与法规松绑(超视距飞行许可)正加速产业化,预计2030年全球低空经济市场规模将突破万亿美元。技术层:轻量化AI模型、边缘-云端协同、安全冗余系统;应用层:垂直领域解决方案(如电网AI巡检、精准农业);生态层:无人机巢建设、空管系统、数据服务平台。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 5595

管好 SAP Fiori Launchpad Content:技术目录、业务目录与 KPI 工具的完整治理思路

SAP Fiori Launchpad 作为企业级统一入口,需通过技术目录(源对象)和业务目录(引用编排)分层治理。技术目录由 Launchpad App Manager 维护,负责应用描述对象(Tile 和 Target Mapping)的创建与管理;业务目录由 Launchpad Content Manager 编排,通过引用技术目录对象实现灵活配置。分析型内容则通过 F2814 统一管理。这种分层设计支持应用复用,便于升级维护,是 SAP S/4HANA 项目中实现高效内容治理的关键。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 132

ADO.NET DataReader对象简介

ADO.NET DataReader对象简介 作者: zyf0808 发表日期: 2006-03-30 08:43 文章属性: 原创 复制链接 DataReader 对象 如果我们利用Command 对象所执行的命令是有传回数据的Select 叙述,此时Command 对象 会自动产生一个DataReader 对象。DataReader 是我们...

weixin_33720452的博客 91

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

net DataReader

ADO.NET有两种对象可以通过连接把数据引入--DataReader 类和DataSet类。 4.1处理和显示数据 不管ASP.NET 页面的大小和复杂性如何,只要是通过ADO.NET来使用数据的页面都具备3段基本的代码: *用于创建到数据源的连接的代码。 *用于从数据源读取、写入数据源以及修改数据的代码 *在用ASP.NET生成的页面上显示数据的代码。 简单说来,可以在下面这种情况下使用Dat

大巧不工 724

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Ado.Net与DataReader详细研究

Ado.Net详细研究(DataReader) Ado.Net与DataReader详细研究如何高效掌握 ADO.NET?下边的文章将与大家分享作者的Ado.Net详细研究。第一篇:ADO.NET的概念ADO.NET中间包含以下常见类: · Connection · Command · DataAdapter · DataReader · DataSet1 Connection类数据库Connec

编程之家 997

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ADO.NET DataReader使用技巧搜集总结

经常上网收集资料,自己看多了也能总结出一些东西,在这里究一些使用ADO.NET DataReader 获得最佳性能的技巧来说谁,同时还回答了一些关于使用ADO.NET DataReader的常见问题。 ◆在访问相关 Command 的任何输出参数之前,必须关闭 DataReader。 ◆完成读数据之后总是要关闭 DataReader。如果使用 Connection 只是用于返回 DataR

darkread的专栏 882

理解ASP.NET的DataReader(c#)

   什么是DataReader?ADO.NET DataReader对象可以从数据库中检索只读、只进的数据流。因为每次在内存中的数据只有一行,所以使用DataReader可提高应用程序的性能并减少系统开销。它还提供了未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在检索大量数据时,DataReader是一种合适的选择。  ADO.NET

feng2375的专栏 8566

.NET中的DataReader简介 (转)

.NET中的DataReader简介 (转)[@more@]XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 摘...

ciya3282的博客 92

ADO.NET(三) 连接池、Command、DataReader

一、连接池 虽然请求链接耗时很短,但是确实是需要时间的。一般使用连接池来优化,链接池保持已经打开的数据库链接,这些链接使用相同数据源之间的会话共享。这样就省下了不断 创建和销毁链接的时间了。ADO.NET中连接池对开发者完全透明,数据访问代码不需要做任何修改,当客户端调用Open()方法请求打开链接时,如果连接池中有此链接,链接直接从连接池中取而不是再次创建。当客户端调用Close()或者Di

1888
上一篇: ADO记录集和水晶报表
下一篇: 在VB.NET中寻找App
40Star
博客等级 码龄25年 1粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值