}
finally
{
readerClose(); // Also closes the connection due to the
// CommandBehavior enum used when generating the reader
}
}
使用 SqlDataReader 检索行
创建一个用来执行存储过程的 SqlCommand 对象并将其与一个 SqlConnection 对象相关联
打开连接
通过调用 SqlCommand 对象的 ExecuteReader 方法创建一个 SqlDataReader 对象
要从流中读取数据请调用 SqlDataReader 对象的 Read 方法来检索行并使用类型化访问器方法(如 GetInt 和 GetString 方法)来检索列值
使用完读取器后请调用其 Close 方法
如何使用 XmlReader 检索多个行
可以使用 SqlCommand 对象来生成 XmlReader 对象后者可提供对 XML 数据的基于流的只进访问命令(通常为存储过程)必须产生基于 XML 的结果集对于 SQL Server 而言该结果集通常包含一个带有有效 FOR XML 子句的 SELECT 语句以下代码片段阐明了该方法
public void RetrieveAndDisplayRowsWithXmlReader()
{
using( SqlConnection conn = new SqlConnection(connectionString) )
{;
SqlCommand cmd = new SqlCommand(DATRetrieveProductsXML conn );
cmdCommandType = CommandTypeStoredProcedure;
try
{
connOpen();
XmlTextReader xreader = (XmlTextReader)cmdExecuteXmlReader();
while ( xreaderRead() )
{
if ( xreaderName == PRODUCTS )
{
string strOutput = xreaderGetAttribute(ProductID);
strOutput += ;
strOutput += xreaderGetAttribute(ProductName);
ConsoleWriteLine( strOutput );
}
}
xreaderClose(); // XmlTextReader does not support IDisposable so it cant be
// used within a using keyword
}
}
上述代码使用了以下存储过程
CREATE PROCEDURE DATRetrieveProductsXML
AS
SELECT * FROM PRODUCTS
FOR XML AUTO
GO
[] [] [] [] [] [] [] [] []