Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il ADO.NET DataSet fornisce una rappresentazione relazionale dei dati. Per l'accesso ai dati gerarchici, è possibile usare le classi XML disponibili in .NET Framework. Storicamente, queste due rappresentazioni dei dati sono state usate separatamente. Tuttavia, .NET Framework consente l'accesso in tempo reale e sincrono rispettivamente alle rappresentazioni relazionali e gerarchiche dei dati tramite l'oggetto DataSet e l'oggetto XmlDataDocument .
Quando un oggetto DataSet viene sincronizzato con un xmlDataDocument, entrambi gli oggetti utilizzano un singolo set di dati. Ciò significa che se viene apportata una modifica al DataSet, la modifica verrà riflessa in XmlDataDocument e viceversa. La relazione tra DataSet e XmlDataDocument crea una grande flessibilità consentendo a una singola applicazione, usando un singolo set di dati, di accedere all'intera suite di servizi compilati intorno DataSet a (ad esempio i controlli Web Form e Windows Form e le finestre di progettazione .NET di Visual Studio), nonché la suite di servizi XML, tra cui Extensible Stylesheet Language (XSL), Trasformazioni XSL (XSLT) e XPath (XML Path Language). Non è necessario scegliere il set di servizi di destinazione con l'applicazione; entrambi sono disponibili.
Esistono diversi modi per sincronizzare un oggetto con DataSet. È possibile:
Riempire un
DataSetcon uno schema (ovvero una struttura relazionale) e i dati e quindi sincronizzarlo con un nuovo XmlDataDocument. In questo modo viene fornita una visualizzazione gerarchica dei dati relazionali esistenti. Per esempio: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);Popolare un
DataSetoggetto con solo schema (ad esempio un DataSet fortemente tipizzato), sincronizzarlo con un XmlDataDocument e quindi caricare daXmlDataDocumentun documento XML. In questo modo viene fornita una visualizzazione relazionale dei dati gerarchici esistenti. I nomi delle tabelle e delle colonne nelloDataSetschema devono corrispondere ai nomi degli elementi XML con cui devono essere sincronizzati. Questa corrispondenza fa distinzione tra maiuscole e minuscole.Si noti che lo schema del
DataSetdeve corrispondere solo agli elementi XML che si desidera esporre nella visualizzazione relazionale. In questo modo, è possibile avere un documento XML molto grande e una "finestra" relazionale molto piccola su tale documento.XmlDataDocumentMantiene l'intero documento XML anche se neDataSetespone solo una piccola parte. Per un esempio dettagliato di questo tipo, vedere Sincronizzazione di un dataset con xmlDataDocument.Nell'esempio di codice seguente vengono illustrati i passaggi per la creazione di un
DataSetoggetto e il popolamento dello schema, quindi la sincronizzazione con xmlDataDocument. Si noti che loDataSetschema deve corrispondere solo agli elementi dell'oggettoXmlDataDocumentche si desidera esporre usando l'oggetto DataSet.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");Non è possibile caricare un oggetto
XmlDataDocumentse è sincronizzato con unDataSetoggetto che contiene dati. Verrà generata un'eccezione.Creare un nuovo
XmlDataDocumentoggetto e caricarlo da un documento XML e quindi accedere alla visualizzazione relazionale dei dati usando laDataSetproprietà di XmlDataDocument. È necessario impostare lo schema dell'oggettoDataSetprima di poter visualizzare uno qualsiasi dei dati in usando l'oggettoXmlDataDocumentDataSet. Anche in questo caso, i nomi delle tabelle e delle colonne nelloDataSetschema devono corrispondere ai nomi degli elementi XML con cui sincronizzarli. Questa corrispondenza fa distinzione tra maiuscole e minuscole.Nell'esempio di codice seguente viene illustrato come accedere alla visualizzazione relazionale dei dati in un xmlDataDocument.
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");
Un altro vantaggio della sincronizzazione di un XmlDataDocument con un DataSet è che la fedeltà di un documento XML viene mantenuta. Se l'oggetto DataSet viene popolato da un documento XML tramite ReadXml, quando i dati vengono riscritti come documento XML utilizzando WriteXml, possono differire notevolmente rispetto al documento XML originale. Ciò è dovuto al fatto che la DataSet non mantiene la formattazione, come spazi bianchi, o le informazioni gerarchiche, come l'ordine degli elementi, dal documento XML. Inoltre DataSet , non contiene elementi del documento XML ignorati perché non corrispondono allo schema del set di dati. La sincronizzazione di un XmlDataDocument oggetto con un DataSet consente la formattazione e la struttura gerarchica degli elementi del documento XML originale da gestire in XmlDataDocument, mentre DataSet contiene solo dati e informazioni sullo schema appropriate per l'oggetto DataSet.
Quando si sincronizza un oggetto con DataSet, i risultati possono variare a seconda che gli DataRelation oggetti siano annidati o meno. Per altre informazioni, vedere Annidamento di DataRelations.
In questa sezione
Sincronizzazione di un set di dati con xmlDataDocument Illustra la sincronizzazione di un dataset fortemente tipizzato, con uno schema minimo, con xmlDataDocument.
Esecuzione di una query XPath in un set di dati Illustra l'esecuzione di una query XPath sul contenuto di un oggetto DataSet.
Applicazione di una trasformazione XSLT a un set di dati Illustra l'applicazione di una trasformazione XSLT al contenuto di un oggetto DataSet.
Sezioni correlate
Uso di XML in un oggetto DataSet Descrive in che modo l'oggetto DataSet interagisce con XML come origine dati, incluso il caricamento e la persistenza del contenuto di un oggetto DataSet come dati XML.
Annidamento di DataRelations Illustra l'importanza degli oggetti annidati DataRelation quando si rappresenta il contenuto di un oggetto DataSet come dati XML e descrive come creare queste relazioni.
DataSets, DataTables e DataViews Descrive DataSet e come usarli per gestire i dati dell'applicazione e per interagire con le origini dati, inclusi database relazionali e XML.
XmlDataDocument Contiene informazioni di riferimento sulla XmlDataDocument classe .