Pętla po elementach z bazy danych oracle

Odpowiedz Nowy wątek
2019-06-12 21:17
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();

                    }

Pozostało 580 znaków

2019-06-13 00:38

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ć.

Pozostało 580 znaków

2019-06-13 09:52
0

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

Pozostało 580 znaków

2019-06-13 10:20
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ć.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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