Étape 1: créer le projet pour le connecteur de recherche fédérée SQL Server
Notes
Cette rubrique décrit la fonctionnalité qui fait partie de la Infrastructure Update for Microsoft Office Servers. Pour télécharger la mise à jour, voir Description de la mise à jour d'infrastructure SharePoint Server 2007 : 15 juillet 2008.
Avant de pouvoir utiliser l'exemple, vous devez créer le projet de site Web avec la page ASPX pour le connecteur fédéré de recherche SQL Server.
Vous pouvez télécharger le code complet de cet exemple à partir de la version Exemple de connecteur fédéré de recherche SQL Server. La mise à jour se trouve dans la page de ressources Exemples de recherches du Kit de développement logiciel (SDK) Microsoft Office SharePoint Server 2007 dans la MSDN Code Gallery (Bibliothèque de code MSDN).
Créer un projet de site Web
Dans Visual Studio 2008, dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Site Web.
Dans Modèles Visual Studio installés, cliquez sur Site Web ASP.NET.
Dans Emplacement, cliquez sur Système de fichiers et, si nécessaire, cliquez sur Parcourir pour rechercher l'emplacement correct de ce site Web. Cet emplacement peut être l'emplacement standard de vos projets Visual Studio et des sites Web, ou l'emplacement sous le répertoire virtuel de votre site Web où vous allez déployer cette application Web.
Dans Langue, cliquez sur Visual C#, puis sur OK.
Créer la page ASPX
Dans Explorateur de solutions, cliquez avec le bouton droit sur Default.aspx, puis sur Supprimer pour supprimer la classe par défaut créée avec le projet.
Dans le menu Site_Web, cliquez sur Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément cliquez sur Formulaire Webet tapez searchresellers.aspx .
Activez la case Placer le code dans un fichier distinct, et cliquez sur Ajouter.
Dans l'Explorateur de solutions, double-cliquez sur searchresellers.aspx.cs.
Dans searchresellers.aspx.cs, ajoutez les instructions suivantes using aux directives d'espaces de noms dans la partie supérieure du code.
using System.Text; using System.Data.SqlClient;
Ajoutez le code suivant sous la déclaration de classe.
string query; string vendor; string format; string connectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=AdventureWorksDW;";
Remplacez la méthode Render en utilisant le code suivant.
protected override void Render(HtmlTextWriter writer) { query = Request.QueryString["q"]; vendor = Request.QueryString["v"]; format = Request.QueryString["f"]; if (vendor != null && vendor.Length > 0) { writer.Write(GetVendorHTML(vendor)); } else { if (format == "htm") { writer.Write(GetResultsHTML(query)); } else { StringBuilder sb = new StringBuilder(); Response.ContentType = "text/xml"; writer.Write(GetResultsXML(query)); } } }
Ajoutez le code de la méthode GetResultsXML. Cette méthode exécute une instruction SELECT avec le terme de requête dans la base de données AdventureWorksDW, puis convertit les résultats au format RSS.
private string GetResultsXML(string queryTerm) { using (SqlConnection connect = new SqlConnection(connectionString)) { connect.Open(); string strCommand = string.Format("select ResellerName,BusinessType,ProductLine,AnnualRevenue from DimReseller WHERE ResellerName like '%{0}%'", queryTerm); SqlCommand command = new SqlCommand(strCommand, connect); SqlDataReader sqlReader = command.ExecuteReader(); StringBuilder resultsXML = new StringBuilder(); resultsXML.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); resultsXML.Append("<rss version=\"2.0\">"); resultsXML.AppendFormat("<channel><title><![CDATA[Adventure Works: {0}]]></title><link/><description/><ttl>60</ttl>", queryTerm); while (sqlReader.Read()) { resultsXML.AppendFormat("<item><title><![CDATA[{0}]]></title><link><![CDATA[{4}?v={0}&q={5}]]></link><description><![CDATA[{1} {2} {3}]]></description></item>", sqlReader[0], sqlReader[1], sqlReader[2], sqlReader[3], Request.Path.ToString(), query); } resultsXML.Append("</channel></rss>"); return resultsXML.ToString(); } }
Ajoutez le code de la méthode GetResultsHTML. Cette méthode exécute une instruction SELECT avec le terme de requête dans la base de données AdventureWorksDW, puis convertit les résultats au format RSS.
private string GetResultsHTML(string queryTerm) { StringBuilder resultsHTML = new StringBuilder(); resultsHTML.Append("<html><head><title>More Results HTML Page</title></head><body>"); using (SqlConnection connect = new SqlConnection(connectionString)) { connect.Open(); string strCommand = string.Format("select ResellerName,BusinessType,ProductLine,AnnualRevenue from DimReseller WHERE ResellerName LIKE '%{0}%'", query); SqlCommand command = new SqlCommand(strCommand, connect); SqlDataReader sqlReader = command.ExecuteReader(); if (sqlReader.HasRows) { int i = 0; while (sqlReader.Read()) { if (i > 14) { break; } else { resultsHTML.AppendFormat("<p><a href='{4}?v={0}'>{0}</a><br>{1} {2} {3}</p>", sqlReader[0], sqlReader[1], sqlReader[2], sqlReader[3], Request.Path.ToString()); i++; } } } else { resultsHTML.AppendFormat("<p>No results for query: <b>{0}</b>", query); } if (!sqlReader.IsClosed) { sqlReader.Close(); } } resultsHTML.Append("</body></html>"); return resultsHTML.ToString(); }
Étapes suivantes
Étape 2 : déployer et tester le connecteur de recherche fédérée SQL Server
Voir aussi
Autres ressources
Exemple de Connecteur SQL Server pour la recherche fédérée
Conseils d'architecture pour créer des connecteurs de recherche fédérée