XML és CSV exportálás és importálás C#-ban

XML és CSV exportálás és importálás C#-ban
2012-03-29T09:43:48+02:00
2012-03-29T12:50:38+02:00
2022-11-25T04:41:53+01:00
gkovacs90
Üdv!

A problémám leegyszerűsítve a következő lenne: Van egy adatbázisom, két táblával: Ügyfelek és Címek. Az Ügyfelek oszlopai mondjuk ID,Nev,Email, a Címekéi ÜgyfélID, Irányítószám,Település. Egy ügyfélhez több cím is tartozhat.
Ezeket az adatokat kellene egy webservice-nek kiexportálnia XML illetve CSV fájlokba, valamint az így előállított fájlokat tudnia kellene visszaimportálni.
Hogyan lehet ezt hatékonyan (és átláthatóan) megoldani? A CSV fájlra direkt azért van szükség, hogy a felhasználó tudja szépen táblázatban nézegetni az adatokat, ezért ha egyszerűen külön fájlokba teszem az ügyfél-, és címlistát, az nem lesz neki megfelelő. Van erre valami általánosan bevált gyakorlat?

Előre is köszönöm a válaszokat, ha nem sikerült egyértelműen feltennem a kérdést, akkor kommentben tisztázom a részleteket.
Mutasd a teljes hozzászólást!
A CSV egyszerűen pontosvesszővel elválasztott adatok sorozata. Nem nagyon látom, milyen nehézséget okozhat egy ilyen soronkénti kiírása ill. visszaolvasása.

Az XML más tészta, arra elég sok lehetőség van, és feladattól függ, hogy mit érdemes használni. Pl. van beépített támogatás komplett object serialization-re (nem fordítom, így rá lehet keresni), ami bármilyen objektumot egyszerűen XML-be ír.

Egy tábla XML import/exportjára talán az a legegyszerűbb megoldás, ha betöltöd egy DataTable-be, annak van ReadXml() és WriteXml() metódusa.
Mutasd a teljes hozzászólást!

  • Helló!

    A világért nem szeretnélek megbántani, de

    CSV Import/Export

    XML Import/Export

    Konkrétan milyen problémád adódott?
    Mutasd a teljes hozzászólást!
  • Hát igen, én is ezzel kezdtem, de amikbe beleolvastam, ott csak "kirakom-visszatöltöm" dolgok voltak, annyi volt a lényeg, hogy menjen az adat oda-vissza, a csv-k olvashatósága nem volt szükséges. Én pedig úgy szeretnék exportálni, hogy a CSV-ben a júzer néhány másodperc alatt megtaláljon mindent, amire szüksége van.

    Kérlek ne alázz meg még egy Google linkkel, inkább keresgélek magamnak és ha nem jön össze úgy, ahogy szeretném, akkor visszatérek kódrészlettel.(vagy ha igen, akkor elfogadom a megoldásod)
    Mutasd a teljes hozzászólást!
  • A CSV egyszerűen pontosvesszővel elválasztott adatok sorozata. Nem nagyon látom, milyen nehézséget okozhat egy ilyen soronkénti kiírása ill. visszaolvasása.

    Az XML más tészta, arra elég sok lehetőség van, és feladattól függ, hogy mit érdemes használni. Pl. van beépített támogatás komplett object serialization-re (nem fordítom, így rá lehet keresni), ami bármilyen objektumot egyszerűen XML-be ír.

    Egy tábla XML import/exportjára talán az a legegyszerűbb megoldás, ha betöltöd egy DataTable-be, annak van ReadXml() és WriteXml() metódusa.
    Mutasd a teljes hozzászólást!
  • Tehát kicsit konkrétabb segítséget szeretnél ha jól gondolom. Ha google-el nem akarod, hogy alázzanak, akkor nem hát legyen.
    1.) Csatlakozol az adatbázishoz ADO-val pl.
    2.) LINQ2SQL
    3.) fájlba ír
    Oda vissza megoldható.

    private IEnumerable<DBRecord> GetData(par) { NorthwindDataContext db = new NorthwindDataContext(); var select = from wasd in db.wasdok where feltétel select wasd; foreach(var w from wasd) { yield return w; } }

    Gondolom a fájlba írás része már megy. De most komolyan, konkrétan melyik részén akadtál el? Csatlakozol az adatbázishoz. LINQ-val query / INSERT műveletekkel tudsz DB-t managelni. StreamWriter/StreamReaderrel tudsz fájlokat kezelni.

    CSV-t nagyon egyszerűott csak ;-vel elválasztod a rekordokat.
    XML-t szintén pofon egyszerű kezelni XmlTextReader/XmlTextWriter-el. (SEGÉDLET
    Mutasd a teljes hozzászólást!
  • Az adatbáziskezeléssel nincs gond, sőt, azt hiszem kicsit túlbonyolítottam gondolatban az egész feladatot.

    Az volt nálam a CSV-s dolog elakadós része, hogy ha mondjuk egy ügyfélnek kiírom az adatait, aztán a tetszőleges számú címét(ami szintén több mező) és a tetszőleges számú bankszámlaszámát, úgy, hogy minden adatot csak egyszer exportálok, akkor hogy tudom megcsinálni, hogy ez átlátható és praktikusan visszaolvasható legyen úgy, hogy nem tudom, mennyi adata(címe,bankszámlaszáma) van az export fájlban. Nagyon előre akartam gondolkodni és hamarabb kérdeztem, minthogy nekiálltam volna megvalósítani, amivel rájöttem volna, hogy tulajdonképpen sima ügy
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd