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-keretrendszerben 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 objektumon és az DataSetXmlDataDocument objektumon keresztül.

Ha egy DataSetXmlDataDocument-fájllal van szinkronizálva, 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. A DataSet és XmlDataDocument közötti kapcsolat jelentős rugalmasságot biztosít azáltal, hogy lehetővé teszi, hogy egyetlen alkalmazás, amely egyetlen adatkészletet használ, hozzáférjen a Word Forms és a Windows Forms vezérlői, valamint a Visual Studio .NET tervezők köré DataSet épített szolgáltatások teljes csomagjához, valamint az XML-szolgáltatásokhoz, mint például az Extensible Stylesheet Language (XSL), XSL Transformations (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ő.

Többféleképpen szinkronizálhat DataSet fájlokat. Ön megteheti:

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

    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 rendelkező DataSet-t (például egy erősen típusos DataSet-et) töltsön fel, szinkronizálja egy XmlDataDocument-tal, majd töltsön be egy XmlDataDocument-t XML-dokumentumból. Ez relációs nézetet biztosít a meglévő hierarchikus adatokról. A séma táblázatneveinek és oszlopneveinek DataSet meg kell egyezniük a szinkronizálni kívánt XML-elemek nevével. Ez az egyezés érzékeny a kis- és nagybetűkre.

    Vegye figyelembe, hogy a DataSet sémájának csak azokkal az XML-elemekkel kell megegyeznie, amelyeket elérhetővé kíván tenni a relációs nézetben. Így egy nagyon nagy XML-dokumentum és egy nagyon kis relációs "ablak" is lehet a dokumentumon. A XmlDataDocument teljes XML-dokumentum megmarad annak ellenére, hogy csak DataSet egy kis részét teszi elérhetővé. (Erre részletes példa: DataSet szinkronizálása XmlDataDocument használatával.)

    Az alábbi kódpéldában a séma létrehozásának DataSet és feltöltésének, majd xmlDataDocumenttel való szinkronizálásának lépései láthatók. Vegye figyelembe, hogy a DataSet sémának csak a XmlDataDocument elemekkel kell egyeznie, amelyeket a DataSet használatával elérhetővé kíván tenni.

    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");
    

    Nem tölthető be, XmlDataDocument ha az adatokat tartalmazóval DataSet van szinkronizálva. A rendszer kivételt fog kivenni.

  • Hozzon létre egy újat XmlDataDocument , és töltse be egy XML-dokumentumból, majd nyissa meg az adatok relációs nézetét az DataSetXmlDataDocument tulajdonságával. Be kell állítania a DataSet sémáját, mielőtt bármelyik adatot megtekintené a XmlDataDocument-ban az Adathalmaz használatával. A séma táblaneveinek és oszlopneveinek DataSet ismét meg kell egyezniük azoknak az XML-elemeknek a nevével, amelyekkel szinkronizálni szeretné őket. Ez az egyezés érzékeny a kis- és nagybetűkre.

    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");
    

Egy XmlDataDocument és DataSet szinkronizálásának másik előnye, hogy az XML-dokumentum pontossága megmarad. Ha az DataSet adatokat a ReadXml használatával tölti ki egy XML-dokumentumból, az adatok XML-dokumentumként való WriteXml visszaírása jelentősen eltérhet az eredeti XML-dokumentumtól. Ennek az az oka, hogy az DataSet XML-dokumentum nem tartalmaz formázást, például szóközt vagy hierarchikus információkat, például elemsorrendet. Az DataSet XML-dokumentum azon elemeit sem tartalmazza, amelyeket figyelmen kívül hagytak, mert azok nem egyeztek meg az adathalmaz sémával. Egy XmlDataDocument fájl szinkronizálása DataSet lehetővé teszi az eredeti XML-dokumentum formázási és hierarchikus elemstruktúrájának fenntartását az XmlDataDocumentben, míg a DataSet fájl csak az Adathalmaznak megfelelő adatokat és sémaadatokat tartalmazza.

Ha DataSet szinkronizál egy objektumot, 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.

Ebben a részben

A DataSet szinkronizálása egy XmlDataDocumenttel Bemutatja, hogyan szinkronizál egy erősen típusos DataSet-et minimális sémával egy XmlDataDocumenttel.

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 DataSet XML hogyan működik adatforrásként, beleértve az XML-adatok tartalmának betöltését és megőrzését DataSet .

DataRelations beágyazása Ismerteti a beágyazott DataRelation objektumok fontosságát egy XML-adat tartalmának DataSet ábrázolásakor, és leírja, hogyan hozhatók létre ezek a kapcsolatok.

DataSets, DataTables és DataViews Leírja a DataSet használatát az alkalmazásadatok kezelésére és az adatforrásokkal való interakcióra, beleértve a relációs adatbázisokat és az XML-t is.

XmlDataDocument Az osztályra vonatkozó referenciainformációkat XmlDataDocument tartalmaz.

Lásd még