Pętla po elementach z bazy danych oracle

0

Cześć.

Wyciągam sobie dane z bazy danych oracle. Chciałbym za pomocą pętli wyciągnąć kilka kolumn i wykonać na nich operację.
W jaki sposób mogę wykonać pętle na tych danych ? Aplikacja jest konsolowa. Wiem jak użyć tego przy EF oraz przy MS SQL jednak nie ogarniam jak to wykonać za pomocą biblioteki Oracle.DataAccess

Do tej pory mam takie coś(reader.Read() nie działa :/) - Wybaczcie jakość kodu:

using (OracleConnection conn = new OracleConnection(Connection.oradb))

            using (OracleCommand cmd1 = new OracleCommand("SELECT * FROM DWS1.KONFEKCJA_TEST Where INDEKS IN ('630055','630104')", conn))
            {

                conn.Open();
                using (OracleDataReader reader1 = cmd1.ExecuteReader())
                {
                    DataTable dataTable1 = new DataTable();
                    dataTable1.Load(reader1);

                    while (reader1.Read())
                    {

                        indeks = (string)reader1["INDEKS"];
                        ilosc = (string)reader1["ILE_DO_PRZESUSNIECIA"];
                        indeksNaKtoryBierzemy = (string)reader1["INDEKS_DOSTEPNY"];

                        DoZlecenie(myclient, nrTransakcji, termin, indeks, ilosc, indeksNaKtoryBierzemy, skladZKtoregoBierzemy, docelowySklad
                                    , opis, dzial, skladWydania, skladOpr);

                        SaveZlecenie();

                    }

1

Wywal

DataTable dataTable1 = new DataTable();
dataTable1.Load(reader1);

i będzie działać.

Metoda Load() wrzuca Ci wynik zapytania do dataTable1 i zamyka DataReader, więc nie możesz z niego dalej korzystać.

0

Dziękuję @hipekk o to mi chodziło :)

0

Proponuję przyjąć, żeby w usingu mieć tylko to co jest niezbędne do jego działania i wykonania danej operacji.
Przypisać sobie jego wynik do jakiejś zewnętrznej zmiennej i potem operować już na tym.
Szczególnie jeśli mam do przerobienia ogromną ilość danych albo wielu użytkowników na bazie, to wolę najpierw "zaczytać" to co mi potrzebne, a w drugim usingu to zapisać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1