Pour créer la table Access utilisée par l'exemple de code précédent comme magasin de données sitemap, publiez la requête de définition de données suivante dans une base de données Access nouvelle ou existante, puis enregistrez la base de données Access sous le nom Sitemap.mdb.
CREATE TABLE SiteMap
(
URL Text (255) UNIQUE,
NAME Text (255) NOT NULL,
PARENTNODEID Int32,
CONSTRAINT NODEID PRIMARY KEY (URL, NAME)
)
Remplissez la table avec les types de données suivants, en répertoriant les fichiers que vous avez dans votre site Web ou ceux que vous pouvez créer. Le tableau suivant affiche un exemple de liste de fichiers.
|
NODEID
|
URL
|
NAME
|
PARENTNODEID
|
| 1 | Default.aspx | Par défaut | null = (cellule vide) |
| 2 | Catalog.aspx | Catalogue | 1 |
| 3 | Aboutus.aspx | Contactez-nous | 1 |
Remarque |
|---|
| Étant donné que les sources de données diffèrent sur le plan de la syntaxe SQL, certaines commandes ne fonctionneront qu'avec une source de données particulière. Par conséquent, il vous est recommandé de créer un fournisseur sitemap spécifique à votre source de données, même si vous utilisez le fournisseur de données .NET Framework pour ODBC ou le fournisseur de données .NET Framework pour OLE DB pour accéder à votre source de données (par exemple SybaseSiteMapProvider, OracleSiteMapProvider, etc.). |
La classe AccessSiteMapProvider est dérivée de la classe StaticSiteMapProvider et récupère ses informations d'une base de données Access à l'aide de requêtes SQL de base et d'objets OleDbCommand et OleDbDataReader.
Enfin, AccessSiteMapProvider est configuré pour être le fournisseur par défaut du fichier Web.config, comme le décrit l'exemple de code suivant.
<configuration>
<system.web>
<siteMap defaultProvider="AccessSiteMapProvider">
<providers>
<add
name="AccessSiteMapProvider"
type="<type name>"
accessSiteMapConnectionString="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=<path>\sitemap.mdb "/>
</providers>
</siteMap>
</system.web>
</configuration>
Pour personnaliser cet exemple, remplacez <type name> par le nom qualifié complet de la classe qui implémente votre fournisseur de données sitemap. Par exemple, dans le code C# précédent, remplacez <type name> par Samples.AspNet.CS.Controls.AccessSiteMapProvider. Si vous compilez votre code de fournisseur de données sitemap et le placez dans le répertoire Bin, la chaîne <type name> doit aussi inclure le nom de votre fichier compilé sans l'extension de nom de fichier. Par exemple, si vous avez compilé le code C# ci-dessus dans un fichier appelé Samples.AspNet.dll, remplacez <type name> par Samples.AspNet.CS.Controls.AccessSiteMapProvider.Samples.AspNet. Enfin, remplacez <path> par le chemin d'accès physique absolu à votre base de données sitemap.