Composant xslt-sql server

Soyez le premier à donner votre avis sur cette source.

Vue 15 273 fois - Téléchargée 1 400 fois

Description

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
Voilà 15 jours que j'ai attaqué sérieusement ma nouvelle appli.. Et je me sers donc de ce composant, mais uniquement avec des procédures stockées paramétrées. Alors comme j'ai pas fourni d'exemple, bah c'est tout simple. Tapez votre procédure en déclarant une variable @nom, déclarer le paramètre comme dans les exemples fournis avec mon composants et ensuite dans la propriété "RequeteSQL" au lieu de mettre : "SELECT nom FROM machin WHERE nom = ?" et bien vous tapez : "Exec ma_proc ? FOR XML NESTED"
Voilà c'est tout.
Et si il y a plusieurs paramètres :
"Exec ma_proc ?, ? FOR XML NESTED"
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
Merde, vi... En fait quand je vais livrer mon appli, je vais faire une page spéciale qui va chercer toutes les infos de mes dll et les affiche à l'écran.. Ce sera pour le suivi de version.

Je reposte tout de suite l'archive, sans mon nom car effectivement ca craint un peu : )
Messages postés
5
Date d'inscription
dimanche 17 avril 2005
Statut
Membre
Dernière intervention
18 avril 2005

re,

c'est pas pour t'embêter, mais il y a un nom dans ton assembly.

au cas ou tu voudrais rester anonyme je te suggère de l'enlever (si c'est bien ton nom).

a+
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
Mise à jour effectuée et j'ai mis un exemple dans le zip.
En fait la seule chose qui change c'est ça :
au lieu de faire :

SqlToXslt1.XSLParams.AddParam("mon_param","","ma valeur !");

il faudra faire
XsltArgumentList() argus = new XsltArgumentList() ;
argus.AddParam("mon_param","","ma valeur !");
SqlToXslt1.XSLParams = argus
Messages postés
507
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1
Bon, j'ai regardé mon code... Effectivement j'ai merdé, je comprends pas. J'avais déjà crée 2 propriétés pour configurer... Et je comprends pas pourquoi j'ai pas mis ces 2 variables publiques en propriété également... Bon je change tout ça et je poste la mise à jour.
Afficher les 9 commentaires

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.