• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczyt pliku XML

Object Storage Arubacloud
0 głosów
386 wizyt
pytanie zadane 20 czerwca 2019 w C# przez DobryKurczak Bywalec (2,320 p.)

Cześć wszystkim.

Ostatnio robię prostą aplikację, której zadaniem jest m.in. dodanie pracowników do kolekcji generycznej, zapisanie do pliku xml czy też odczyt z pliku xml. Problem jest taki, że o ile zapis do pliku xml czy dodanie pracownika działa bez problemu, tak odczyt nie działa, wyrzuca mi, że wyjątek nieobsłużony.

Wyjątek nieobsłużony: System.FormatException: Nieprawidłowy format ciągu wejściowego.

Poniżej wrzucę kod i omówię klasę, co w konsoli jest nie tak:

klasa Pracownik

https://pastebin.com/0ZUb7dFJ

Tutaj w konsoli pokazuje na błąd w linijce 138, czyli na ten fragment kodu:

        public virtual void OdczytXml(DataRow dr)
        {
            this.imie = dr.ItemArray[0].ToString();
            this.nazwisko = dr.ItemArray[1].ToString();
            string[] data = dr.ItemArray[2].ToString().Split(' ');
            dataUrodzenia.Dzien = Int32.Parse(data[0]); // Tutaj pokazuje w konsoli, ze cos jest nie tak
            dataUrodzenia.Miesiac = data[1];
            dataUrodzenia.Rok = Int32.Parse(data[2]);
            string[] adres = dr.ItemArray[3].ToString().Split(' ');
            adresZamieszkania.Ulica = adres[0];
            adresZamieszkania.NumerDomu = adres[1];
            adresZamieszkania.Miasto = adres[2];

        }

Czy źle tutaj wykorzystałem funkcję Parse? Bo nie za bardzo rozumiem

Klasa FormatDanych

https://pastebin.com/aNaL4tPZ

klasa ta służy do zapisu i oodczytu pliku .xml

W konsoli pokazuje, że linijka 102 coś nie gra, chodzi o tą linijkę:

                    p.OdczytXml(dr);

Czyli tak jakby coś nie grało w Pracowniku, więc skoro stworzyłem obiekt klasy Pracownik i wywołuję metodę z tej klasy, to bardziej coś w tym Pracowniku nie gra. Ale podam jeszcze inne klasy

Klasa Lista: https://pastebin.com/PmuyVvNM

W konsoli wykazuje, że linijka 156 jest coś nie tak, wkleję fragment kodu:

        FormatDanych df = new FormatDanych();

        public void OdczytXml()
        {
            lista = df.OdczytXML();
        }

Klasa Program: https://pastebin.com/XiPG2Dbt

Tutaj linijka 116 jest coś nie tak:

                    case 8:
                        {
                            lista.OdczytXml();
                            break;
                        }

 

Są jeszcze inne klasy Informatyk, Lekarz itp ale są one klasami pochodnymi klasy Pracownik. W zasadzie to wygląda na to, że coś w tym pracowniku nie gra to parsowanie, ale jak patrzę, to wszystko powinno być ok. Może ktoś pomoże rozwiązać ten problem. Z góry dziękuję za pomoc!

1 odpowiedź

0 głosów
odpowiedź 24 czerwca 2019 przez pulson666 Stary wyjadacz (12,560 p.)
Bo nie dostajesz tam zapewne liczby lub tablica jest pusta. Zrób na samym początku tryprase i zobacz co się stanie

Podobne pytania

0 głosów
1 odpowiedź 111 wizyt
pytanie zadane 5 czerwca 2017 w C# przez gos Nowicjusz (140 p.)
0 głosów
1 odpowiedź 100 wizyt
pytanie zadane 5 czerwca 2017 w C# przez gos Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 562 wizyt
pytanie zadane 28 lipca 2016 w PHP przez rucin96 Użytkownik (500 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...