Como leer un campo xml de sql server 2005 con c#

Solo disponible en BuenasTareas
  • Páginas : 3 (567 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de diciembre de 2010
Leer documento completo
Vista previa del texto
Como leer un campo XML de SQL Server 2005 con C#El soporte nativo a XML de SQL Server 2005 es una de las caracteristicas más interesantes de la verisón. Cuando empezamos a trabajar con Xml nosencontramos con el problema de como leer los datos guardados en formato Xml de la base de datos, es decir, como obtener una instancia de XmlDocument a partir de una consulta a la base de datos.
Para esteejemplo, lo primero que vamos a necesitar es una tabla con un campo de tipo Xml, para ello ejecutamos el siguiente script en nuestra base de datos.

CREATE TABLE TABLA_CON_XML (
Id int identity notnull,
CampoXml Xml,
CONSTRAINT PK_TABLA_CON_XML PRIMARY KEY (Id)
)

Para grabar datos en la tabla anterior necesitamos una segunda tabla con el objetivo de realizar una consulta posterior conla clausula FOR XML de SQL Server 2005. La creamos con el siguiente script:

CREATE TABLE INFO (
Id int identity not null,
DbName varchar(100),
UserName varchar(100),
FxAlta datetime,
CONSTRAINTPK_INFO PRIMARY KEY (Id)
)

GO

INSERT INTO INFO SELECT DB_NAME(), USER_NAME(), GETDATE()

Con esto, grabamos un registro en nuestra tabla utilizando para ello una consulta con la clausula FORXML

DECLARE @Xml Xml
set @Xml = (SELECT * FROM INFO
FOR XML AUTO, elements)
INSERT INTO TABLA_CON_XML
(CampoXml) VALUES (@Xml)
GO

SELECT * FROM TABLA_CON_XML

La consulta debe habergenerado un Xml como el que se muestra a continuación.

<info>
<Id>1</Id>
<DbName>PRUEBAS</DbName>
<UserName>dbo</UserName><FxAlta>2007-08-13T11:07:11.077</FxAlta>
</info>

Ahora ya podemos escribir el código C# necesario para acceder a la base de datos y recuperar el Xml.
Lo primero que debemos hacer es importar los namespacesnecesarios para trabajar con SQL Server y Xml.

using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Xml;
Para el ejemplo, hemos realizado una sencilla aplicación Windows en la...
tracking img