我目前打電話給sproc
。從sproc
返回的數據返回IDictionary<string, object>
的ExpandoObject
。這對於每個sproc
的一個數據集來說工作得很好。現在我遇到了一個sproc
,它在兩個不同的表中返回數據。當我打電話給我的功能時,我只能從第一個表中獲取數據。所以我的問題是我怎樣才能返回下一個數據集的數據。多個數據集ExpandoObject
注 - 我沒有改變存儲過程
我到目前爲止的代碼的權限是:
using(SqlDataReader reader = cmd.ExecuteReader())
{
var names = Enumerable.Range(0, reader.FieldCount).Select(reader.GetName).ToList();
foreach (IDataRecord record in reader as IEnumerable)
{
IDictionary<string, object> expando = new ExpandoObject() as IDictionary<string, object>;
foreach (var name in names)
expando[name] = record[name];
yield return expando; //yield return to keep the reader open
}
}
我想我從來沒有見過從數據庫中讀取數據的這種奇怪的用法......你甚至稱'reader.Read()'? – lokusking
你需要[SqlDataReader.NextResult](https://support.microsoft.com/en-us/kb/311274)嗎? – 2016-08-21 22:15:07