根据查询语句,可以返回多个结果集。在默认情况下,数据阅读器定位在它们第一个结果上,我们可以用Read()方遍利当前结果集中的所有记录,在得到最后一个记录后,Read方法返回false.并且不能向前移动。要移动到下一个结果集,可以使用NextResult方法。如果没有其它结果集要读取,则返回false。下面的代码就表明如何访问所有返回的结果集中的所有记录。
/// <summary>
/// 执行SQL语句返回多个结果集
/// </summary>
/// <param name="sSql">要执行的SQL语句</param>
private void muti_ExccuteReader(string sSql)
{
StringBuilder sb =new StringBuilder();
using (SqlConnection conn = new SqlConnection(connstring))
{
string cmdText = sSql;
SqlCommand cmd = new SqlCommand(cmdText, conn);
conn.Open();
SqlDataReader DataReade= cmd.ExecuteReader();
do
{
while (DataReade.Read())
{
sb.Append("{0},{1}<br>", DataReade[0], DataReade[1]);
sb.Append("<br>");
}
} while (DataReade.NextResult());//这里是关键---移动到下一个结果集
DataReade.Close();
}
}