SqlCommand.ExecuteReader 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
ExecuteReader() |
CommandText将 发送到 并Connection生成 SqlDataReader 。 |
ExecuteReader(CommandBehavior) |
CommandText将 发送到 ,Connection并使用值之CommandBehavior一SqlDataReader生成 。 |
ExecuteReader()
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当 设置为 Stream 时Value,使用 Binary 或 VarBinary 以外的 。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
- 或 -
SqlDbType设置为 时ValueTextReader ,使用了 Char、NChar、NVarChar、VarChar 或 Xml 以外的其他项。
-或-
对锁定的行执行命令时出现异常。 当使用 Microsoft .NET Framework 1.0 版时不生成此异常。
- 或 -
流式处理操作期间发生了超时。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
连接的当前状态已关闭。 ExecuteReader() 需要一个打开 SqlConnection 的 。
- 或 -
流式处理操作期间关闭或删除了 SqlConnection。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
在流式处理操作期间, XmlReader 或 TextReader 对象中Stream发生错误。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
在StreamXmlReader流式处理操作期间, 或 TextReader 对象已关闭。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
示例
以下示例创建 一个 SqlCommand,然后通过传递一个是 Transact-SQL SELECT 语句的字符串和一个用于连接到数据源的字符串来执行它。
// <Snippet1>
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]));
}
}
}
// </Snippet1>
}
注解
当 属性 CommandType 设置为 StoredProcedure
时,应将 CommandText 属性设置为存储过程的名称。 调用 ExecuteReader时,命令将执行此存储过程。
注意
如果事务已死锁,则在调用 之前 Read 可能不会引发异常。
MARS) 功能 (多个活动结果集允许使用同一连接执行多个操作。
如果使用 ExecuteReader 或 BeginExecuteReader 访问 XML 数据,SQL Server将返回长度超过 2,033 个字符的任何 XML 结果,每行 2,033 个字符。 若要避免此行为,请使用 ExecuteXmlReader 或 BeginExecuteXmlReader 读取 FOR XML 查询。
适用于
ExecuteReader(CommandBehavior)
CommandText将 发送到 ,Connection并使用值之CommandBehavior一SqlDataReader生成 。
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 对象。
例外
SqlDbType当 设置为 Stream 时Value,使用 Binary 或 VarBinary 以外的 。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
- 或 -
SqlDbType设置为 时ValueTextReader ,使用了 Char、NChar、NVarChar、VarChar 或 Xml 以外的其他项。
-或-
流式处理操作期间发生了超时。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
在流式处理操作期间, XmlReader 或 TextReader 对象中Stream发生错误。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
流式处理操作期间关闭或删除了 SqlConnection。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
在StreamXmlReader流式处理操作期间, 或 TextReader 对象已关闭。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
示例
以下示例创建 一个 SqlCommand,然后通过传递一个是 Transact-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时,命令将执行此存储过程。
注意
使用 SequentialAccess 检索大型值和二进制数据。 否则, OutOfMemoryException 可能会出现 ,连接将被关闭。
MARS) 功能 (多个活动结果集允许使用同一连接执行多个操作。
如果使用 ExecuteReader 或 BeginExecuteReader 访问 XML 数据,SQL Server将返回长度超过 2,033 个字符的任何 XML 结果,每行 2,033 个字符。 若要避免此行为,请使用 ExecuteXmlReader 或 BeginExecuteXmlReader 读取 FOR XML 查询。