Como leer un campo xml de sql server 2005 con c#
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...
Regístrate para leer el documento completo.