HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A Merge metódus változatai


A DataSet osztály Merge metódusai 2. rész

Példaprogram letöltése

9376 bájt

Ebben a cikkben sorra vesszük a cikksorozat előző számában kimaradt Merge változatokat. Megismerhetjük, hogyan történik a Merge folyamata eltérő sémával, szerkezettel rendelkező adathalmazok esetén.

Eltérő adatsémák
Az előző cikkünkben olyan adathalmazokat hangoltunk össze, illetve egyesítettünk, melyek azonos szerkezettel, sémával rendelkeztek. Ehhez jól használhatók a Merge metódus azon változatai, melyek paraméterként csak a forrás adatszerkezetet kapják meg. Azonban más változatokat kell használjunk olyan esetekben, amikor az adathalmazok eltérő szerkezetűek, például eltérő oszlopszámmal rendelkeznek. Mostani cikkünkben a Merge metódus azon változatai kerülnek terítékre, melyek képesek aszerint figyelembe venni, illetve figyelmen kívül hagyni a forrás adathalmaz oszloptöbbletét, hogy milyen értéket kapnak paraméterként.
A függvények által kapott paramétert a .NET osztálykönyvtár System.Data névterében találjuk meg, neve MissingSchemaAction. Pontos deklarációja a következő:
public enum MissingSchemaAction
A hangzatos név arra utal, hogy milyen „akció” következzen be (ezek lesznek a felsorolt típus elemei) akkor, amikor a cél adathalmazban hiányzik az adott sémainformáció egy adott oszlop értékével kapcsolatban. A változó lehetséges értékei a következők:
  • Add
Hozzáadja a szükséges oszlopszerkezetet a cél-adathalmaz sémájához, kiegészítve azt.
  • AddWithKey
Hozzáadja a szükséges oszlopokat és PRIMARY KEY információkat a cél-adathalmaz sémájához. Ahhoz, hogy ez a funkció helyesen együttműködjön a .NET objektumkészletével (OleDb .NET Data Provider), a natív OleDb meg kell, hogy kapja a PRIMARY KEY információkat, vagyis DBPROP_UNIQUEROWS property-jének értéket kell adni, valamint meg kell mondani, melyik oszlopra vonatkozik az adott megszorítás. Amennyiben egy adott adattáblában explicit módon hoztunk létre elsődleges kulcs megszorítást, ezt az értéket használva a Merge metódus paraméterében a létező sorokkal megegyező beérkező sorok nem hozzáadódnak a táblához, hanem „update”-elik a rekordokat.
  • Error
Oszloptöbblet esetén generálódik egy SystemException kivétel.
  • Ignore
Figyelmen kívül hagyja a többlet oszlopokat.
Merge metódus további változatai
Merge
Osztály: DataSet
public void Merge(
DataRow[] rows,
bool preserveChanges,
MissingSchemaAction missingSchemaAction
)
A függvény ezen változata alkalmas arra, hogy DataRow típusú tömböt adjunk meg forrás adathalmazként, majd ezt a cél-adathalmazzal összehangoljuk. A forrás-tömb lehet eltérő oszlopszámú, mint a cél-adathalmaz.
Paraméterek
DataRow[] rows
Tetszőleges adatsorokat tartalmazó tömb.
bool preserveChanges
A paraméter megadásával utasíthatjuk a függvényt arra, hogy miként adja a sorok celláiban bekövetkezett változásokat a cél-adathalmazhoz. TRUE értéket adva a paraméternek az adott cella megváltozott értéke nem érvényesül a cél-cellában (vagyis megvédi a tartalmát), FALSE esetén érvényesül.
MissingSchemaAction missingSchemaAction
Eltérő oszlopszerkezet esetén meghatározza az összefűzés folyamatát (lásd Eltérő adatsémák c. szakasz).
Merge
Osztály: DataSet
public void Merge(
DataSet dataSet,
bool preserveChanges,
MissingSchemaAction missingSchemaAction
)
A metódussal lehetőségünk van egy DataSet típusú objektumot hozzáadni a cél DataSet halmazhoz.
Paraméterek
DataSet dataSet
A forrás-adathalmazt reprezentáló DataSet objektum, melynek sémája és adatai összefűzésre kerülnek.
bool preserveChanges
Az „adatvédő” paraméter.
MissingSchemaAction missingSchemaAction
Eltérő oszlopszerkezet esetén meghatározza az összefűzés folyamatát (lásd Eltérő adatsémák c. szakasz).
Merge
Osztály: DataSet
public void Merge(
DataTable table,
bool preserveChanges,
MissingSchemaAction missingSchemaAction
)
A metódussal lehetőségünk van egy DataTable típusú objektumot hozzáadni a cél DataSet halmazhoz.
Paraméterek
DataTable table
A forrás-adathalmazt reprezentáló DataTable objektum, melynek sémája és adatai összefűzésre kerülnek.
bool preserveChanges
Az „adatvédő” paraméter.
MissingSchemaAction missingSchemaAction
Eltérő oszlopszerkezet esetén meghatározza az összefűzés folyamatát (lásd Eltérő adatsémák c. szakasz).
A mellékelt példaprogram kiegészült azokkal a funkciókkal, amelyek lehetővé teszik, hogy a forrás-adathalmazunkba oszlopokat szúrjunk be, illetve töröljünk. Ezt a két műveletet a „New Column”, illetve a „Del Column” feliratú gombok segítségével végezhetjük el.
A „Preserve” jelölőnégyzet állapotaitól függően lesz az adott Merge függvény második paramétere TRUE, illetve FALSE. Bejelölt állapotban TRUE.
A MissingSchemaAction paraméter aktuális értéke a ComboBox kontrol egy értékének kiválasztásával állítható be. A listából az „Error” értéket választva a függvény természetes viselkedése az lenne, hogy kivételt generálva egy hibaüzenetet tartalmazó üzenetpanelt jelenít meg. Ezt nem teszi meg, mivel a kivételt elkaptuk, és kezeléseképpen a listában az „Add” érték lesz kiválasztva.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 664. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |