2009-12-18 38 views
2

我有一个存储过程返回三个记录集。它在Studio中被调用。SqlDataReader没有第三个记录集

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

我不能剪切和粘贴从Management Studio中的记录集,但相信我,它显示了三个记录集,第一个有一排用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); 
} 

下一页()只是对读者来电NextResult。 当我到达最后一行时,阅读器中没有行。像最后一个记录集返回没有行。但它确实如此。所有其余的值都会返回正常。

有没有人有任何想法,为什么这可能是?

回答

2

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

+0

我从来没有。我从来没有新的东西,现在我看着我用过的所有其他地方,DataTable加载是最后一件事情。 现在工作的一种享受。希望我2小时前问过。 – 2009-12-18 09:50:56

相关问题