Próbuję wypełnić DataSet, który zawiera 2 tabele z jednym do wielu relacji. Używam DataReader do osiągnięcia tego celu:Jak wypełnić zestaw danych wieloma tabelami?
public DataSet SelectOne(int id)
{
DataSet result = new DataSet();
using (DbCommand command = Connection.CreateCommand())
{
command.CommandText = "select * from table1";
var param = ParametersBuilder.CreateByKey(command, "ID", id, null);
command.Parameters.Add(param);
Connection.Open();
using (DbDataReader reader = command.ExecuteReader())
{
result.MainTable.Load(reader);
}
Connection.Close();
}
return result;
}
Ale mam tylko jeden stół wypełniony. Jak osiągnąć mój cel - wypełnić obie tabele?
Chciałbym użyć DataReader zamiast DataAdapter, jeśli to możliwe.
Dlaczego można się spodziewać, że dwa stoły są wypełnione? Twoje polecenie zawiera tylko jedną instrukcję 'select', która zwraca pojedynczą tabelę. –
Dlaczego nie użyć 'SqlDataAdapter' i jego metody' Fill (...) 'zamiast' DbCommand'? – bluevector
@Nikola Anusev - Znam to, więc pytam o jakąkolwiek propozycję –