ID do artigo: 311566 - Última revisão: domingo, 13 de maio de 2007 - Revisão: 2.4

Como ler dados XML em um DataSet usando o Visual translation from VPE for Csharp .NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo demonstra como ler dados XML (Extensible Markup Language) em um objeto DataSet do ADO.NET.

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server ou Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • O Visual Studio .NET
  • Conceitos básicos do ADO.NET e sintaxe
  • Conceitos básicos XML

Descrição da técnica

Você pode usar o método ReadXml para ler o esquema XML e dados em um DataSet . Dados XML podem ser lidos diretamente de um arquivo, um objeto de fluxo , um objeto XmlWriter ou um objeto TextWriter .

Você pode usar um dos dois conjuntos de métodos sobrecarregados para o método ReadXml , dependendo das suas necessidades. O primeiro conjunto de quatro métodos sobrecarregados leva apenas um parâmetro. O segundo conjunto de quatro métodos sobrecarregados têm um parâmetro adicional ( XmlReadMode ) juntamente com um dos parâmetros do primeiro conjunto.

A lista a seguir descreve o primeiro conjunto de métodos sobrecarregados, o que levar um parâmetro:
  • O código a seguir utiliza um arquivo especificado para ler dados e esquema XML em DataSet :
    Overloads Public Sub ReadXml(String)
    					
  • O código a seguir usa um TextReader especificado para ler dados e esquema XML em DataSet . TextReader foi projetado para entrada de caracteres.
    Overloads Public Sub ReadXml(TextReader)
    					
  • O código a seguir usa um especificado System.IO.Stream para ler dados e esquema XML em DataSet . A classe Stream é projetada para bytes de entrada e saída.
    Overloads Public Sub ReadXml(Stream)
    					
  • O código a seguir usa um especificado XmlReader para ler dados e esquema XML em DataSet . Esse método fornece rápido e não armazenada em cache, encaminhar - somente acesso a dados XML que está de acordo com o World Wide Web Consortium (W3C) especificação XML 1.0 e os namespaces na especificação do XML.
    Overloads Public Sub ReadXml(XmlReader)
    					
A lista a seguir descreve o segundo conjunto de métodos sobrecarregados, o que levar XmlReadMode com um dos parâmetros mencionados acima. A enumeração XmlReadMode Especifica como ler dados XML e esquema em um DataSet .
  • DiffGram . Lê um DiffGram e aplica alterações do DiffGram ao DataSet .
  • fragmento . Lê os documentos XML que contenham fragmentos de esquema (XML-Data REDUCED) in-line (tais como aquelas que são gerados quando você executa FOR XML esquemas que incluem o esquema XDR in-line em relação a uma instância do Microsoft SQL Server).
  • IgnoreSchema . Ignora qualquer esquema in-line e lê os dados para o esquema DataSet existente.
  • InferSchema . Ignora qualquer esquema in-line, infere o esquema dos dados e carrega os dados. Se o DataSet já contiver um esquema, InferSchema estende o esquema atual, adicionando colunas a tabelas existentes e adicionando novas tabelas se tabelas não existirem.
  • ReadSchema . Lê qualquer esquema in-line e carrega os dados.
  • automático . O padrão. Executa a ação mais apropriada.

Criar projeto e adicionar código

Este exemplo usa um arquivo chamado MySchema.xml. Para criar MySchema.xml, execute as etapas no seguinte artigo da Base de dados de Conhecimento Microsoft:
309183  (http://support.microsoft.com/kb/309183/EN-US/ ) Como persistir um ConjuntoDeDados ADO.NET como XML usando o Visual translation from VPE for Csharp .NET
O exemplo de código a seguir demonstra como usar dois as versões sobrecarregadas utilizadas de ReadXml . Para obter outros exemplos, consulte MSDN para tópicos individuais sobrecarga desse método.
  1. Inicie o Visual Studio NET..
  2. Crie um novo projeto Windows Application no Visual translation from VPE for Csharp NET.. Form1 é adicionado para o projeto por padrão.
  3. Verifique se seu projeto contém uma referência ao namespace System.Data e adicione uma referência a este espaço para nome se não.
  4. Coloque dois controles Button e um controle DataGrid no Form1. Altere a propriedade Name do Button1 para btnReader e altere sua propriedade Text para o leitor .

    Altere a propriedade Name do Button2 para btnFile e altere sua propriedade Text para o arquivo .
  5. Usar a instrução usando os namespaces de sistema , System.Data e System.Data.SqlClient de modo que não é necessário para qualificar declarações esses namespaces posteriormente no seu código.
    using System;
    using System.Data;
    using System.Data.SqlClient;
    					
  6. Adicionar o código a seguir no manipulador de eventos que corresponde aos botões:
    private void btnReader_Click(object sender, System.EventArgs e)
    {
        string myXMLfile = @"C:\MySchema.xml";
        DataSet ds = new DataSet();
        // Create new FileStream with which to read the schema.
        System.IO.FileStream fsReadXml = new System.IO.FileStream 
            (myXMLfile, System.IO.FileMode.Open);
        try
        {
            ds.ReadXml(fsReadXml);
            dataGrid1.DataSource = ds;
            dataGrid1.DataMember = "Cust";
        }
        catch (Exception ex)
        {
    	MessageBox.Show(ex.ToString());
        }
        finally
        {
    	fsReadXml.Close();
        }
    }
    		
    private void btnFile_Click(object sender, System.EventArgs e)
    {
        string myXMLfile = "C:\\MySchema.xml";
        DataSet ds = new DataSet(); 
        try
        {
            ds.ReadXml(myXMLfile);
            dataGrid1.DataSource = ds;
            dataGrid1.DataMember = "Cust";
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    					
  7. Modifique o caminho para o arquivo XML ( MyXmlFile ) conforme apropriado para seu ambiente.
  8. Salve seu projeto. No menu Debug , clique em Iniciar para executar seu projeto.
  9. Clique em qualquer um dos botões para ler os dados XML do arquivo especificado. Observe que os dados XML é exibido na grade.

Observações adicionais

  • Para ler somente o esquema XML, você pode usar o método ReadXmlSchema .
  • Para obter somente a representação XML dos dados no DataSet , em vez de persistência-lo em um fluxo ou um arquivo, você pode usar o método GetXml .

Referências

Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
309183  (http://support.microsoft.com/kb/309183/EN-US/ ) Como persistir um ConjuntoDeDados ADO.NET como XML usando o Visual translation from VPE for Csharp .NET
262450  (http://support.microsoft.com/kb/262450/EN-US/ ) Como um exemplo de C++ de persistência do XML do Recordset ADO
Para obter mais informações sobre objetos ADO.NET e a sintaxe, consulte a seguinte documentação do Software Development Kit (SDK) do Microsoft .NET Framework ou MSDN online:
Acessando dados com o ADO.NET
http://msdn2.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft ADO.NET 1.1
  • Microsoft ADO.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbhowtomaster kbsystemdata KB311566 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 311566  (http://support.microsoft.com/kb/311566/en-us/ )