2009-12-18 37 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

相關問題