SqlDataReader没有第三个记录集

时间:2009-12-18 09:32:51

标签: sql ado.net c#-3.0

我有一个存储过程,它返回三个记录集。这是在Studio中调用的。

EXEC CampaignData '007CF7F8-AE8D-DE11-8BBA-0003FF4C13C9'  

我无法从Management Studio剪切和粘贴记录集,但相信我它会显示三个记录集,第一个记录集有一行有2个值,第二行有三行,第三行有2行。

这是我的c#读它

using (DAResult daResult = DA.SP.CampaignData(new Guid("007CF7F8-AE8D-DE11-8BBA-0003FF4C13C9")).Execute())
{
daResult.Read();
UserCount = daResult.ValueInt("UserCount");
ProspectCount = daResult.ValueInt("ProspectCount");

daResult.Next();
EmailTemplates = new DataTable();
EmailTemplates.Load(daResult.Reader);

daResult.Next();
SMSTemplates = new DataTable();
SMSTemplates.Load(daResult.Reader);
}

Next()只需在Reader上调用NextResult即可。 当我到达最后一行时,阅读器中没有行。像最后一个记录集一样没有返回任何行。它确实如此。其余所有值都可以正常返回。

有没有人知道为什么会这样?

1 个答案:

答案 0 :(得分:2)

“EmailTemplates的负载(daResult.Reader);”
加载 方法使用加载的IDataReader中的第一个结果集,成功完成后,将读者的位置设置为下一个结果集(如果有)。
所以你应该只删除代码行:“daResult.Next();”