Voici un composant dont je suis assez fier, et qui me servira probablement dans mes prochains dev. Il fait suite à l'exemple que j'ai posté sur CSharpfr.com et concerne donc la transformation, selon un fichier XSL, d'une requête sur SQL Server en HTML.
ATTENTION : pour l'utiliser vous devez télécharger XML FOR SQL Server sur le site de Microsoft.
UTILISATION :
1 - Une fois tout correctement installé, faites glisser le composant sur une feuille ASP.Net.
a) utilisation simple, remplissez les 3 propriétés :
RequeteSQL est votre requete sql se terminant par For XML Auto pour la sortie XML.
exemple :
SELECT EmployeeID, FirstName, LastName FROM Employees For XML Auto
FichierXSL est le répertoire dans votr e appli web ou se situe le fichier de présentation XSL.
exemple : modeles/MyXSL.xsl
ChaineSQLServer est évidemment la chaine de connexion à la base dont voici un exemple :
Provider=SQLOLEDB;Server=localhost;database=Northwind;uid=sa;pwd=monpass
En fait il faut surtout savoir réaliser un fichier XSL : )
b) ajouter un paramètre dans la feuille XSL.
Pour le valoriser dynamiquement avec ce composant il suffit de faire :
SqlToXslt1.XSLParams.AddParam("mon_param","","ma valeur !");
c) valorisation de variable dans une requête paramétrée
exemple de la requête :
SELECT EmployeeID, FirstName, LastName FROM Employees WHERE EmployeeID > ? For XML Auto
dans le code :
using Microsoft.Data.SqlXml
...
SqlXmlParameter a = SqlToXslt1.CommandeSQL.CreateParameter();
a.Name = "EmployeeID";
a.Value = 2;
Ici l'exemple est en dur, mais évidemment le but est de réaliser des liens par exemples dans le XSL qui change dynamiquement l'affichage du composant... et pourquoi pas en changeant alors aussi le fichier XSL.
Conclusion :
Les défauts de ce composant :
1-Pas d'affichage "page par page"... Ou alors ce sera compliqué à faire.
2-Une seule requête possible.
Bref, ce composant permet d'afficher toutes sortes d'informations provenant d'une base SQL Server avec une grande dynamique, que ce soit dans la présentation, ou dans la structure de la présentation