SqlCommand.ExecuteXmlReader 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 CommandText 发送到 Connection,并生成一个 XmlReader 对象。
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader ();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
返回
一个 XmlReader 对象。
例外
将 Value 设置为 Stream 时,使用的是 SqlDbType 而不是 Binary 或 VarBinary。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
- 或 -
设置为 SqlDbType 时ValueTextReader,使用了 Char、NChar、NVarChar、VarChar 或 Xml 以外的 。
- 或 -
对锁定的行执行命令时出现异常。 当使用 Microsoft .NET Framework 1.0 版时不生成此异常。
- 或 -
流式处理操作期间发生了超时。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
流式处理操作期间关闭或删除了 SqlConnection。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
流式处理操作期间在 Stream、XmlReader 或 TextReader 对象中出现了错误。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
流式处理操作期间关闭了 Stream、XmlReader 或 TextReader 对象。 有关流式处理的详细信息,请参阅 SqlClient 流支持。
示例
以下示例创建 , SqlCommand 然后使用 执行它 ExecuteXmlReader。 该示例将传递一个字符串,该字符串是 Transact-SQL FOR XML SELECT 语句,以及一个用于连接到数据源的字符串。
private static void CreateXMLReader(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
System.Xml.XmlReader reader = command.ExecuteXmlReader();
}
}
Public Sub CreateXMLReader(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim command As New SqlCommand(queryString, connection)
Dim reader As System.Xml.XmlReader = command.ExecuteXmlReader
End Using
End Sub
注解
此方法返回的 XmlReader 不支持异步操作。
属性 CommandText 通常使用有效的 FOR XML 子句指定 Transact-SQL 语句。 但是, CommandText 也可以指定一个语句,该语句返回 ntext
或 nvarchar
包含有效 XML 的数据,或者指定使用 xml
数据类型定义的列的内容。
典型 ExecuteXmlReader 查询的格式可以如以下 Microsoft Visual C# 示例中所示:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
此方法还可用于检索包含 XML 数据的单行、单列结果集。 在这种情况下,如果返回多行,该方法 ExecuteXmlReader 会将 XmlReader 附加到第一行的值,并放弃结果集的其余部分。
MARS) 功能的多个活动结果集 (允许使用同一连接执行多个操作。
如果使用 ExecuteReader 或 BeginExecuteReader 访问 XML 数据,SQL Server将返回长度超过 2,033 个字符的任何 XML 结果,每行包含 2,033 个字符。 若要避免此行为,请使用 ExecuteXmlReader 或 BeginExecuteXmlReader 读取 FOR XML 查询。