私は現在sproc
を呼び出しています。 sproc
から返されたデータは、IDictionary<string, object>
のExpandoObject
を返しました。これは、sproc
ごとに1つのデータセットに対して完全に正常に機能します。今私はsproc
に出くわしました。これは2つの異なるテーブルにデータを返します。関数を呼び出すと、最初のテーブルからデータが取得されます。だから私の質問は、次のデータセットのデータも返すことができます。ExpandoObjectに複数のデータセット
注 - 私はSPROCを
私がこれまで持っているコードを変更する権限を持っていないです:それは大したことを見ていない一見
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)が必要ですか? –