Fonctions xml de sql server en c#

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 342 fois - Téléchargée 35 fois

Contenu du snippet

SQL Server est capable de renvoyer une requête au format XML grâce aux extensions XML for SQL Server à télécharger sur le site de Microsoft. Comme j'ai trouvé ca par hasard, j'ai eu envie de montrer l'exemple très parlant fourni par MS.

Source / Exemple :


1 - Créer le modèle XSL suivant dans le répertoire de votre appli (qui doit être une application Console... C'est juste pour l'exemple) :

 <?xml version="1.0" encoding="UTF-8" ?> 
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html" /> 
- <xsl:template match="*">
  <xsl:apply-templates /> 
  </xsl:template>
- <xsl:template match="Employees">
- <TR>
- <TD>
  <xsl:value-of select="@FirstName" /> 
  </TD>
- <TD>
- <B>
  <xsl:value-of select="@LastName" /> 
  </B>
  </TD>
  </TR>
  </xsl:template>
- <xsl:template match="/">
- <HTML>
- <HEAD>
  <STYLE>th { background-color: #CCCCCC }</STYLE> 
  </HEAD>
- <BODY>
- <TABLE border="1" style="width:300;">
- <TR>
  <TH colspan="2">Employees</TH> 
  </TR>
- <TR>
  <TH>First name</TH> 
  <TH>Last name</TH> 
  </TR>
  <xsl:apply-templates select="root" /> 
  </TABLE>
  </BODY>
  </HTML>
  </xsl:template>
  </xsl:stylesheet>

2 - Voici le code C#, qui va générer un fichier HTML. J'ai copié ici toute ma classe :

class Class1
	{
		static string NorthwindConnString = "Provider=SQLOLEDB;Server=localhost;database=Northwind;Integrated Security=SSPI";
		public static int testXSL()
		{
			//Stream strm;
			SqlXmlCommand cmd = new SqlXmlCommand(NorthwindConnString);
			cmd.CommandText = "select FirstName, LastName from Employees For XML Auto";
			cmd.RootTag = "root";
			using (Stream strm = cmd.ExecuteStream())
				   {
				XmlTextReader reader = new XmlTextReader(strm);
				XPathDocument xd = new XPathDocument(reader, XmlSpace.Preserve);
				XslTransform xslt = new XslTransform();
				xslt.Load("MyXSL.xsl", null);
				XmlTextWriter writer = new XmlTextWriter("xslt_output.html", System.Text.Encoding.UTF8);
		
				xslt.Transform(xd, null, writer);
			}
			return 0;
		}
		public static int Main(String[] args)
		{
			testXSL();   
			return 0;
		}

	}

3 - générer l'application, et la, si tout se passe bien, vous avez un joli fichier HTML dans le répertoire de l'appli

Vous remarquerez dans la requête SQL le : "XML for Auto" à la fin. C'est cette commande qui dit à SQL Server de retourner un résultat au format XML.

A voir également

Ajouter un commentaire

Commentaires

cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
salut salut stailer,


Superbe ...je vais tester cela de suite ....

Bonne journée

ciao
Christophe
cs_stailer
Messages postés
511
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1 -
Salut,

merci... J'en ai fait également un composant que tu pourras trouver sur ASPFR.COM... Par contre le composant ne génère pas de fichier HTML mais un flux. Ca permet de cette façon de créer des pages dynamiques.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.