`
zu14
  • 浏览: 464742 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数和返回值的使用注意事项

阅读更多

今天,有个网友问起:

使用ExecuteReader方式执行的存储过程,存储过程既返回了查询结果,又有输出参数和返回值,但是返回值和输出结果总是取不到

其实这个问题,微软本身就给出了解释,MSDN上有明确的说明,我直接贴出来了:

Command 对象公开了几个可用于执行所需操作的 Execute 方法。当以数据流的形式返回结果时,使用 ExecuteReader 可返回 DataReader 对象。使用 ExecuteScalar 可返回单个值。使用 ExecuteNonQuery 可执行不返回行的命令。

当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure。当 CommandType 为 StoredProcedure 时,可以使用 Command 的 Parameters 属性来访问输入及输出参数和返回值。无论调用哪一个 Execute 方法,都可以访问 Parameters 属性。但是,当调用 ExecuteReader 时,在 DataReader 关闭之前,将无法访问返回值和输出参数

<script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 728x90 */ google_ad_slot = "1368486102"; google_ad_width = 728; google_ad_height = 90; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

上面说的,应该是很清楚了吧,呵呵

分享到:
评论

相关推荐

    C#使用ExecuteReader返回DataReader

    总结来说,当C#中的`ExecuteReader`用于执行返回查询结果、输出参数和返回值的存储过程时,需要注意以下几点: 1. 使用`CommandType.StoredProcedure`指定是存储过程。 2. 使用`Parameters`属性添加和配置输入、输出...

    C#客户端和中间层编程中的数据访问(2)

    本节详细讲解了如何使用 `TableAdapter` 查询和 `Command` 对象创建和执行返回多行结果的 SQL 语句。 - **使用 TableAdapter 查询**: - 在数据集设计器中创建 `TableAdapter` 查询。 - 通过调用 `TableAdapter` ...

    C#中DBhelper类文件下载

    - **DataReader查询**:`ExecuteReader(string sql, params object[] parameters)`方法使用SqlDataReader对象逐行读取查询结果,适合于处理大量数据时减少内存占用。 4. **事务处理**:为了保证数据的一致性,...

    C#数据库编程代码

    在本节中,我们将详细探讨如何使用 C# 来连接 SQL Server 2000 数据库,并执行基本的操作如查询、插入、更新和删除。 ##### 1.1 连接字符串配置 连接字符串是建立与数据库连接的关键信息,通常包含服务器地址、...

    C#操作SQL使用宝典

    对于查询,我们可以使用SqlCommand的ExecuteReader方法获取结果集,然后遍历DataReader对象: ```csharp SqlCommand command = new SqlCommand("SELECT * FROM MyTable WHERE Age &gt; @Age", connection); command....

    数据库系统课程设计C#源码

    例如,使用ExecuteReader方法获取查询结果集,ExecuteNonQuery方法执行无返回值的DML(增删改)操作。 5. 数据绑定和控件:在Windows Forms或ASP.NET中,可以将数据绑定到控件,如DataGridView、ComboBox等,以显示...

    SqlHelper源码及使用实例.

    这些方法分别对应不同的数据库操作:ExecuteNonQuery用于执行非查询操作(如INSERT、UPDATE、DELETE),ExecuteReader返回一个DataReader对象以进行数据遍历,而ExecuteScalar则用于获取单个值(如查询COUNT结果)。...

    oracle存储过程

    在处理返回的表数据时,`p_orders`参数是一个输出的SYS_REFCURSOR类型,它通常表示一个游标,可以用于在C#中打开一个DataReader,从而读取存储过程返回的结果集。游标允许我们逐行访问数据,而无需一次性加载所有...

    描述了C#数据库操作

    本文档详细介绍了使用C#进行数据库操作的各种方法,包括删除记录、执行无返回值的操作、获取返回值的操作、填充数据集以及执行存储过程等。这些操作对于任何与数据库交互的应用程序都是至关重要的。 #### 二、连接...

    C#精华面试题及答案

    - 用于执行 `SELECT` 查询,并返回一个 `DataReader` 对象。 - 错误选项解析:选项 C 表示 “Select 操作的 SQL 语句只能由 ExecuteReader() 方法来执行” 是不准确的。虽然 `SELECT` 语句通常由 `ExecuteReader()...

    c#SQLHelper(forwinForm)实现代码解读.docx

    SQLHelper的核心在于执行SQL语句的方法,例如`ExecuteNonQuery()`(用于非查询操作,如INSERT、UPDATE、DELETE)和`ExecuteReader()`(用于查询操作,返回DataReader对象): ```csharp /// /// 执行SQL语句,无...

    C#与ADO.NET期末复习提纲

    `ExecuteReader()`用于执行返回结果集的查询,如SELECT,返回一个DataReader对象。 以上知识点涵盖了C#的基础语法、面向对象特性、ASP.NET框架的使用以及ADO.NET数据库操作的基本概念,是期末复习的关键点。理解和...

    SqlHelper源码及使用实例

    2. **ExecuteReader()**:执行查询语句并返回一个DataReader对象,可以用来遍历查询结果。 3. **ExecuteScalar()**:用于执行返回单个值的SQL语句,例如COUNT(*)或SELECT TOP 1。 4. **ExecuteDataset()**:执行...

    数据库操作类(存储过程)及调用方法

    在上述代码示例中,我们展示了如何在C#中创建一个数据库操作类,它包含了调用存储过程的多种方法,包括处理输入参数、输出参数和返回值,以及使用SqlDataReader读取结果集。这种方法不仅使代码更加整洁,也提高了...

    C#.NET程序设计期末测试题(卷)B.doc

    【C#.NET程序设计期末测试题解析】 C#.NET是一种基于.NET Framework的编程语言,用于构建各种应用程序,...这些内容有助于理解C#.NET的基础概念、类库使用和数据操作。学习这些知识对于开发C#.NET应用程序至关重要。

    微软官方的SQLHelper类(含完整中文注释)

    3. ExecuteReader:用于执行返回多行数据的查询,返回一个DataReader对象,可以遍历查询结果。 在SQLHelper类中,这些方法通常会接受两个主要参数:SQL语句和参数数组。例如,你可以这样使用ExecuteNonQuery方法...

    SqlHelper.zip

    1. **执行SQL查询**:提供ExecuteQuery方法,用于执行SQL SELECT语句,返回结果集作为DataTable对象或者DataRow数组,便于数据处理和显示。 2. **执行SQL命令**:提供ExecuteNonQuery方法,用于执行INSERT、UPDATE...

    C#技术面试题

    - **返回值:** 返回一个`SqlDataReader`对象,可以用来读取查询结果。 - **示例代码:** ```csharp using System.Data.SqlClient; string connectionString = "Data Source=(local);Initial Catalog=...

    C#连接数据库

    你可以设置`CommandText`属性为SQL语句,`CommandType`属性为命令类型(如文本或存储过程),并使用`ExecuteReader()`(返回`SqlDataReader`)或`ExecuteNonQuery()`(无返回值,如INSERT、UPDATE、DELETE语句)执行...

    ADONET数据库访问技术PPT教学课件.pptx

    Command对象提供了ExecuteReader(返回DataReader对象以读取结果集)、ExecuteNonQuery(执行无返回值的SQL命令,如UPDATE、INSERT、DELETE,返回受影响的行数)和ExecuteScalar(返回结果集的第一行第一列的值,...

Global site tag (gtag.js) - Google Analytics