Como formato DateTime e valores de data no XML extraído de um ConjuntoDeDados ADO.NET usando o Visual translation from VPE for Csharp .NET

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: 330597
Para obter uma Visual Basic .NET versão deste artigo, consulte 811767.
IN nesta tarefa
    Sumário
    Este artigo passo a passo descreve como formatar valores de DateTime e a Data no XML que é extraído de um objeto DataSet do ADO.NET. No ADO.NET, DateTime e Data valores de colunas da DataTable são gravados nos formatos de XSD DateTime e Data quando o DataSet é salvo como XML. Os formatos padrão XSD DateTime e Data são CCYY - MM - DDThh:mm:ss e CCYY-MM-AAAA, respectivamente, porque o esquema XSD subjacente do DataSet mapeia o DateTime e colunas de Data do banco de dados para os tipos de dados DateTime e XSD Data .

    Para gerar XML no qual valores de DateTime e Data são representados nos formatos personalizados necessários, use um dos seguintes métodos:
    • Use a classe XmlConvert .
    • Aplicar uma transformação XSLT (XSLT) no XML representação dos dados de DataSet .

    Usar a classe XmlConvert

    1. Inicie o Microsoft Visual Studio NET.. No Visual translation from VPE for Csharp. NET, crie um novo projeto ASP.NET Web Application chamado DateTimeXmlConvert.
    2. Clique com o botão direito do mouse a superfície de designer de WebForm1.aspx e clique em View Code para editar o código no código de formulário da Web por trás do módulo de classe WebForm1.aspx.cs.
    3. Adicione o seguinte ao final da seção de diretivas usando no WebForm1.aspx.cs:
      	using System.Xml;	using System.Text;	using System.Data.SqlClient;
    4. Cole o seguinte código no método Page_Load :
      		// Change SQL Server name, User Id and Password in following connection string.	string conn = "Server=SQLServerName; database=Northwind; user id=<username>; password=<strong password>";	SqlConnection connection = new SqlConnection();	connection.ConnectionString = conn;	DataSet objDataSet = new DataSet();	SqlDataAdapter objAdapter = new SqlDataAdapter();	SqlCommand objCmd = new SqlCommand();	// Retrieve the first 10 records from the employees table.	objCmd.CommandText = "select top 10 FirstName,BirthDate from employees";	objCmd.Connection = connection;	objAdapter.SelectCommand = objCmd;	objAdapter.Fill(objDataSet);	connection.Close();	// Create an instance of XmlTextReader class that reads the XML data.	XmlTextReader xmlReader = new XmlTextReader(objDataSet.GetXml(), XmlNodeType.Element, null);	Response.ContentType = "text/xml";	XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);	xmlWriter.Indentation = 4;	xmlWriter.WriteStartDocument();	string elementName = "";	// Parse and display each node.	while(xmlReader.Read())	{		switch(xmlReader.NodeType)		{			case XmlNodeType.Element:				xmlWriter.WriteStartElement(xmlReader.Name);				elementName = xmlReader.Name;				break;			case XmlNodeType.Text:				if(elementName.ToLower() == "birthdate")					xmlWriter.WriteString(XmlConvert.ToDateTime(xmlReader.Value).ToString());				else					xmlWriter.WriteString(xmlReader.Value);				break;			case XmlNodeType.EndElement:				xmlWriter.WriteEndElement();				break;		}	}				xmlWriter.Close();
      Observação você deve alterar o ID de usuário = < nome do usuário > conta de valor para um que possui as permissões apropriadas para executar essas operações no banco de dados.
    5. Salve as alterações para WebForm1.aspx.cs.
    6. No menu Build , clique em Build Solution .
    7. Inicie o Microsoft Internet Explorer e abra a WebForm1.aspx especificando a seguinte URL, onde IISServerName é o nome do servidor do Microsoft Internet Information Services (IIS):
      http://IISServerName/DateTimeXmlConvert/WebForm1.aspx
    Agora você pode ver o arquivo XML processado no navegador na DateTime formato. personalizado

    Aplicar uma transformação XSLT a representação XML dos dados de DataSet

    Você pode usar blocos de script embutido e componentes de código externo, conhecidos como objetos de extensão de XSLT, para implementar rotinas personalizadas. Esses são chamados durante um XSLT para cálculos e processar dados. A Microsoft recomenda que você evite usar blocos de script embutido. Você pode usar objetos de extensão para implementar rotinas personalizadas quando você cria folhas de estilo XSLT portátil.

    Criar um formulário do ASP.NET

    1. Crie um novo projeto de Visual translation from VPE for Csharp.NET ASP.NET Web Application chamado DateTimeXSLT.
    2. Adicione um novo módulo de classe chamado DateConverter.cs para o projeto. Abra isso no editor de código e, em seguida, exclua o código existente.
    3. Cole o seguinte código no módulo de classe DateConverter.cs para implementar a classe DateConverter :
      using System;namespace DateTimeXSLT{	public class DateConverter	{		public string GetDateTime(string data, string format)		{			DateTime dt = DateTime.Parse(data);			return dt.ToString(format);		}	}}
    4. Salve as alterações para DateConverter.cs.
    5. Clique com o botão direito do mouse a superfície de designer de WebForm1.aspx e clique em View Code para editar o código no code ’s o formulário da Web-behind o módulo de classe WebForm1.aspx.cs.
    6. Adicione o seguinte ao final da seção de diretivas usando no WebForm1.aspx.cs:
      	using System.IO;	using System.Xml;	using System.Xml.Xsl;	using System.Xml.XPath;	using System.Data.SqlClient;
    7. Cole o seguinte código no método Page_Load :
      	// Change Sql Server name, User Id and Password in following connection string.	string strConn = "Server=SQLServerName;database=Northwind; user id=<username>; password=<strong password>;	SqlConnection connection = new SqlConnection();	connection.ConnectionString = strConn;	DataSet objDataSet = new DataSet();	SqlDataAdapter objAdapter = new SqlDataAdapter();	SqlCommand objCmd = new SqlCommand();	// Retrieve all records from employees table.	objCmd.CommandText = "select FirstName,BirthDate from employees";	objCmd.Connection = connection;	objAdapter.SelectCommand = objCmd;	objAdapter.Fill(objDataSet);	connection.Close();	// Create an instance of StringReader class that reads the XML data.	StringReader reader = new StringReader(objDataSet.GetXml());	XPathDocument doc = new XPathDocument(reader);	// Create an XslTransform object and load xslt file.	XslTransform transform = new XslTransform();	transform.Load(this.MapPath("DateTime.xslt"));	//Add an object to convert  DateTime format.	DateConverter objDateConverter =		new DateConverter();	XsltArgumentList args = new XsltArgumentList();	args.AddExtensionObject("urn:ms-kb", objDateConverter);	transform.Transform(doc, args, Response.OutputStream);	
    8. Salve as alterações para WebForm1.aspx.cs.

    Criar um documento XSLT de amostra

    1. Adicione um novo arquivo XSLT chamado DateTime.xslt ao projeto do ASP.NET DateTimeXSLT.
    2. Substitua o código gerado com o código a seguir. Uso o bloco de notas como uma ferramenta intermediário se você tiver qualquer codificação ou problemas de caracteres quando você tenta colar esse código na versão file:
      <?xml version='1.0'?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:myObj="urn:ms-kb"><xsl:template match="NewDataSet"><table><xsl:attribute name="border">1</xsl:attribute>   <TR><TD>Employee name</TD><TD>Original DateTime Format</TD><TD>Changed DateTime Format</TD></TR>	<xsl:apply-templates select="*"/></table></xsl:template><xsl:template match="*">	<TR>	<xsl:apply-templates select="*"/>	</TR></xsl:template><xsl:template match="FirstName"><TD>	<xsl:value-of select="."/></TD></xsl:template><xsl:template match="BirthDate"><xsl:variable name="Date" select="."/><TD><xsl:value-of select="$Date"/></TD><TD>		<xsl:value-of select="myObj:GetDateTime($Date, 'F')"/></TD></xsl:template></xsl:stylesheet>
    3. Salve as alterações para DateTime.xslt.

    Testar a transformação XSLT usando o formulário da Web do ASP.NET

    1. Salvar as alterações na DateTimeXSLT ASP .NET Web projeto.
    2. No menu Build , clique em Build Solution .
    3. Inicie o Microsoft Internet Explorer e abra a WebForm1.aspx especificando a seguinte URL, onde IISServerName é o nome do servidor IIS:
      http://IISServerName/DateTimeXSLT/WebForm1.aspx
    Agora você pode ver o formato de DateTime do DataSet e o formato DateTime transformado em WebForm1.aspx página.
    Referências
    Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    323370Como usar objetos de extensão quando você executar transformações XSL em aplicativos .NET translation from VPE for Csharp Visual

    Aviso: este artigo foi traduzido automaticamente

    Proprietăți

    ID articol: 330597 - Ultima examinare: 03/18/2008 17:12:44 - Revizie: 5.4

    Microsoft ADO.NET 1.0, Microsoft ADO.NET 1.1, Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

    • kbmt kbwebforms kbdatetime kbhowtomaster KB330597 KbMtpt
    Feedback