У меня есть хранимая процедура, которая возвращает две таблицы. Таблица 1 имеет, например, {1,2,3,4,5}, таблица 2 будет иметь {a, b, c, d, e}. Например, {1, a}, {2, b} аналогично все связаны.Как обрабатывать несколько результатов с помощью DataReader в Visual C#?
В моем читателе я должен прочитать все эти данные в списке. Объект будет иметь два свойства: {1, a} go. Это код, у меня сейчас,
while(reader.Read())
{
Transaction transaction = null;
transactions.Add(transaction = new Transaction()
{
TranID = reader.GetInt64(reader.GetOrdinal("TranID"))
});
if (reader.NextResult())
{
while (reader.Read())
{
transaction.Amounts.Add(new Fund
{
Amount = reader.GetDecimal(reader.GetOrdinal("Amount")),
});
}
}
}
То, что здесь происходит, если я вернусь 10 транзакций Идентификаторы и 10 Суммы, мой окончательный результат имеет только 1 сделка и 10 Суммы, отображенные на него. Как получить 10 транзакций с эквивалентной суммой?
Я думаю, что было бы лучше изменить хранимую процедуру, чтобы вернуть единый результирующий набор вместо двух. –
Нет ли другого способа сделать это? – user1890098
Возможно, существуют другие способы сделать это, но из того, как вы описали таблицы, которые вы вернетесь, как вы можете быть уверены, что это {1, a}, {2, b}, а не {1, a, b} {2, c}? –