Megosztás a következőn keresztül:


DataSet és XmlDataDocument szinkronizálása

A ADO.NET DataSet az adatok relációs ábrázolását biztosítja. Hierarchikus adathozzáféréshez használhatja a .NET-keretrendszer elérhető XML-osztályokat. Korábban ezt a két adatábrázolást külön használták. A .NET-keretrendszer azonban valós idejű, szinkron hozzáférést tesz lehetővé az adatok relációs és hierarchikus ábrázolásához az Adathalmaz objektumon és az XmlDataDocument objektumon keresztül.

Amikor egy Adatkészlet szinkronizálva van egy XmlDataDocument fájllal, mindkét objektum egyetlen adatkészlettel dolgozik. Ez azt jelenti, hogy ha módosítják az Adathalmazt, a módosítás az XmlDataDocumentben is megjelenik, és fordítva. Az adatkészlet és az XmlDataDocument közötti kapcsolat nagy rugalmasságot teremt azáltal, hogy lehetővé teszi, hogy egyetlen alkalmazás egyetlen adatkészlettel hozzáférjen az Adatkészlet köré épülő teljes szolgáltatáscsomaghoz (például Webes űrlapok és Windows Űrlapvezérlők, Visual Studio .NET-tervezők), valamint az XML-szolgáltatások csomagjához, beleértve az Extensible Stylesheet Language (XSL) szolgáltatást is, XSL-átalakítások (XSLT) és XML Path Language (XPath). Nem kell kiválasztania, hogy melyik szolgáltatáskészletet célozza meg az alkalmazással; mindkettő elérhető.

Az Adathalmazokat többféleképpen szinkronizálhatja xmlDataDocument fájllal. A következőket teheti:

  • Töltse ki a DataSetet sémával (azaz relációs struktúrával) és adatokkal, majd szinkronizálja egy új XmlDataDocumenttel. Ez hierarchikus nézetet biztosít a meglévő relációs adatokról. Példa:

    Dim dataSet As DataSet = New DataSet  
    
    ' Add code here to populate the DataSet with schema and data.  
    
    Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet)  
    
    DataSet dataSet = new DataSet();  
    
    // Add code here to populate the DataSet with schema and data.  
    
    XmlDataDocument xmlDoc = new XmlDataDocument(dataSet);  
    
  • Csak sémával (például erősen beírt Adatkészlettel) töltse fel az Adatkészletet, szinkronizálja egy XmlDataDocumenttel, majd töltse be az XmlDataDocument fájlt egy XML-dokumentumból. Ez relációs nézetet biztosít a meglévő hierarchikus adatokról. Az Adatkészletsémában lévő táblaneveknek és oszlopneveknek meg kell egyezniük azoknak az XML-elemeknek a nevével, amelyekkel szinkronizálni szeretné őket. Ez az egyezés megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

    Vegye figyelembe, hogy az Adathalmaz sémájának csak a relációs nézetben elérhetővé tenni kívánt XML-elemeknek kell megegyeznie. Így egy nagyon nagy XML-dokumentum és egy nagyon kis relációs "ablak" is lehet a dokumentumon. Az XmlDataDocument megőrzi a teljes XML-dokumentumot, annak ellenére, hogy az Adatkészlet csak egy kis részét teszi ki. (Ennek részletes példáját lásd: DataSet szinkronizálása XmlDataDocument fájllal.)

    Az alábbi kódpéldában egy DataSet létrehozásának és a séma feltöltésének, majd xmlDataDocumenttel való szinkronizálásának lépései láthatók. Vegye figyelembe, hogy az Adatkészlet-sémának csak az XmlDataDocument azon elemeivel kell egyeznie, amelyeket az Adatkészlet használatával el szeretne helyezni.

    Dim dataSet As DataSet = New DataSet  
    
    ' Add code here to populate the DataSet with schema, but not data.  
    
    Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet)  
    xmlDoc.Load("XMLDocument.xml")  
    
    DataSet dataSet = new DataSet();  
    
    // Add code here to populate the DataSet with schema, but not data.  
    
    XmlDataDocument xmlDoc = new XmlDataDocument(dataSet);  
    xmlDoc.Load("XMLDocument.xml");  
    

    Az XmlDataDocument nem tölthető be, ha az adatokat tartalmazó adatkészlettel van szinkronizálva. A rendszer kivételt fog kivenni.

  • Hozzon létre egy új XmlDataDocument fájlt, és töltse be egy XML-dokumentumból, majd az XmlDataDocument DataSet tulajdonságával férhessen hozzá az adatok relációs nézetéhez. A DataSet sémáját be kell állítania, mielőtt bármelyik adatot megtekintené az XmlDataDocumentben az Adathalmaz használatával. Az Adatkészlet sémában lévő táblaneveknek és oszlopneveknek ismét meg kell egyezniük azoknak az XML-elemeknek a nevével, amelyekkel szinkronizálni szeretné őket. Ez az egyezés megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

    Az alábbi példakód bemutatja, hogyan érheti el az adatok relációs nézetét egy XmlDataDocumentben.

    Dim xmlDoc As XmlDataDocument = New XmlDataDocument  
    Dim dataSet As DataSet = xmlDoc.DataSet  
    
    ' Add code here to create the schema of the DataSet to view the data.  
    
    xmlDoc.Load("XMLDocument.xml")  
    
    XmlDataDocument xmlDoc = new XmlDataDocument();  
    DataSet dataSet = xmlDoc.DataSet;  
    
    // Add code here to create the schema of the DataSet to view the data.  
    
    xmlDoc.Load("XMLDocument.xml");  
    

Az XmlDataDocument adatkészletekkel való szinkronizálásának másik előnye, hogy az XML-dokumentumok hűsége megmarad. Ha az Adatkészlet egy XML-dokumentumból van feltöltve a ReadXml használatával, akkor ha az adatokat a WriteXml használatával írják vissza XML-dokumentumként, az jelentősen eltérhet az eredeti XML-dokumentumtól. Ennek az az oka, hogy az Adatkészlet nem tartja fenn a formázást, például a szóközt vagy a hierarchikus információkat, például az elemsorrendet az XML-dokumentumból. Az Adatkészlet nem tartalmazza az XML-dokumentum azon elemeit sem, amelyeket figyelmen kívül hagytak, mert azok nem felelnek meg az adathalmaz sémájának. Az XmlDataDocument adatkészlettel való szinkronizálása lehetővé teszi az eredeti XML-dokumentum formázását és hierarchikus elemstruktúráját az XmlDataDocumentben, míg az Adatkészlet csak az Adatkészletnek megfelelő adatokat és sémainformációkat tartalmazza.

Ha egy DataSetet xmlDataDocumenttel szinkronizál, az eredmények eltérhetnek attól függően, hogy az DataRelation objektumok beágyazva vannak-e. További információ: DataRelations beágyazása.

A szakasz tartalma

DataSet szinkronizálása XmlDataDocumenttel
Bemutatja, hogy egy erősen gépelt adathalmazt minimális sémával szinkronizál egy XmlDataDocument fájllal.

XPath-lekérdezés végrehajtása adathalmazon
Egy XPath-lekérdezés adathalmaz tartalmán végzett végrehajtását mutatja be.

XSLT-átalakítás alkalmazása adathalmazra
Egy XSLT-átalakítás adathalmaz tartalmának alkalmazását mutatja be.

XML használata adathalmazban
Azt ismerteti, hogy az Adatkészlet hogyan működik együtt adatforrásként az XML-lel, beleértve az adathalmaz tartalmának XML-adatként való betöltését és megőrzését .

DataRelations beágyazása
Ismerteti a beágyazott DataRelation-objektumok fontosságát az adathalmazok tartalmának XML-adatként való ábrázolásakor, és ismerteti, hogyan hozhatók létre ezek a kapcsolatok.

DataSets, DataTables és DataViews
Ismerteti az adatkészletet , és azt, hogyan kezelheti az alkalmazásadatokat, és hogyan kezelheti az adatforrásokat, beleértve a relációs adatbázisokat és az XML-t.

XmlDataDocument
Hivatkozási információkat tartalmaz az XmlDataDocument osztályról.

Lásd még