SqlCommand.ExecuteReader 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| ExecuteReader() |
将 CommandText 它发送到 Connection 并生成一个 SqlDataReader。 |
| ExecuteReader(CommandBehavior) |
将值CommandText发送到Connection其中一个值,并生成一个SqlDataReaderCommandBehavior值。 |
ExecuteReader()
- Source:
- SqlCommand.cs
- Source:
- SqlCommand.cs
- Source:
- SqlCommand.cs
- Source:
- SqlCommand.cs
将 CommandText 它发送到 Connection 并生成一个 SqlDataReader。
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader();
override this.ExecuteReader : unit -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader
返回
SqlDataReader 对象。
例外
-
SqlDbType设置为时使用的其他
Binary项或VarBinary已用Value到 Stream。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。 -
除其他项SqlDbType外,
NVarCharVarCharNChar或Xml设置为TextReader时使用Value。Char -
设置为时ValueXmlReader使用的其他
Xml项SqlDbType。
- 针对锁定行执行命令时发生异常。 使用 Microsoft .NET Framework 版本 1.0 时,不会生成此异常。
- 流式处理操作期间发生超时。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
- 连接的当前状态已关闭。 ExecuteReader() 需要打开 SqlConnection。
- 在 SqlConnection 流式处理操作期间关闭或删除。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
流式处理操作期间发生错误StreamXmlReader或TextReader对象。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
Stream XmlReader流式处理操作期间关闭或TextReader对象。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
示例
以下示例创建一个字符串,然后通过传递一个 SqlCommandTransact-SQL SELECT 语句的字符串以及一个用于连接到数据源的字符串来执行该字符串。
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
}
}
注解
当属性 CommandType 设置为 StoredProcedure该属性时, CommandText 该属性应设置为存储过程的名称。 调用时 ExecuteReader,该命令将执行此存储过程。
Note
如果事务已死锁,则在被调用之前 Read ,可能不会引发异常。
多个活动结果集 (MARS) 功能允许使用同一连接执行多个操作。
如果使用 ExecuteReader 或 BeginExecuteReader 访问 XML 数据,SQL Server 将返回长度大于 2,033 个字符的任何 XML 结果,每行包含 2,033 个字符。 若要避免此行为,请使用 ExecuteXmlReader 或 BeginExecuteXmlReader 读取 FOR XML 查询。
适用于
ExecuteReader(CommandBehavior)
- Source:
- SqlCommand.cs
- Source:
- SqlCommand.cs
- Source:
- SqlCommand.cs
- Source:
- SqlCommand.cs
将值CommandText发送到Connection其中一个值,并生成一个SqlDataReaderCommandBehavior值。
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader
参数
- behavior
- CommandBehavior
其中一个 CommandBehavior 值。
返回
SqlDataReader 对象。
例外
流式处理操作期间发生超时。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
流式处理操作期间发生错误StreamXmlReader或TextReader对象。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
在 SqlConnection 流式处理操作期间关闭或删除。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
Stream XmlReader流式处理操作期间关闭或TextReader对象。 有关流式处理的详细信息,请参阅 SqlClient 流式处理支持。
示例
以下示例创建一个字符串,然后通过传递一个 SqlCommandTransact-SQL SELECT 语句的字符串以及一个用于连接到数据源的字符串来执行该字符串。 将 CommandBehavior 设置为 CloseConnection。
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader =
command.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
}
}
}
注解
当属性 CommandType 设置为 StoredProcedure该属性时, CommandText 该属性应设置为存储过程的名称。 调用时 ExecuteReader,该命令将执行此存储过程。
Note
使用 SequentialAccess 检索大值和二进制数据。 否则,可能会发生 OutOfMemoryException,并且连接将关闭。
多个活动结果集 (MARS) 功能允许使用同一连接执行多个操作。
如果使用 ExecuteReader 或 BeginExecuteReader 访问 XML 数据,SQL Server 将返回长度大于 2,033 个字符的任何 XML 结果,每行包含 2,033 个字符。 若要避免此行为,请使用 ExecuteXmlReader 或 BeginExecuteXmlReader 读取 FOR XML 查询。