Procédure pas à pas : interrogation de la Recherche SharePoint à partir d’une application cliente
Dernière modification : mardi 20 juillet 2010
S’applique à : SharePoint Server 2010
Notes
Dans ce contexte, les applications clientes font référence aux applications qui appellent le Requête de service Web. Il peut s’agir d’applications telles que les applications Web Microsoft ASP.NET ou les applications Windows Forms.
La méthode Web QueryEx du Requête de service Web envoie une requête au service de recherche et retourne les résultats dans un objet DataSet. La procédure pas à pas suivante explique comment utiliser le Requête de service Web pour retourner les résultats de la Recherche SharePoint Server à une application cliente Windows en utilisant la méthode Web QueryEx et comprend les tâches suivantes :
Configuration de l’application cliente
Référencement du Requête de service Web à partir de l’application cliente
Modification du formulaire pour l’application cliente
Codage de l’application cliente
Test de l’application cliente
Pour effectuer cette procédure pas à pas, vérifiez les points suivants :
Microsoft Visual Studio 2010 est installé sur votre ordinateur de développement.
Vous êtes habilité à accéder à un site SharePoint configuré de manière à utiliser la Recherche SharePoint Server.
Pour configurer l’application cliente
Dans Visual Studio 2010, dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Sous Modèles installés, développez Visual C#, puis cliquez sur Windows.
Sélectionnez Application Windows Forms. Dans le champ Nom, tapez QueryExClientSample, puis cliquez sur OK.
Pour ajouter une référence Web au service Web Query
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet, puis cliquez sur Ajouter une référence de service.
Dans la boîte de dialogue Ajouter une référence de service, cliquez sur Avancé.
Dans la boîte de dialogue Paramètres de référence de service, cliquez sur Ajouter une référence Web.
Dans la boîte de dialogue Ajouter une référence Web, dans le champ texte URL, tapez l’adresse suivante : http://serveur/_vti_bin/search.asmx. Remplacez serveur par l’URL du site SharePoint, puis cliquez sur Aller à.
Lorsque le service Web est localisé, la page du service Web QueryService apparaît dans la fenêtre principale de la boîte de dialogue Ajouter une référence Web. Tapez QueryWebServiceProxy dans le champ Nom de la référence Web, puis cliquez sur Ajouter une référence.
Pour modifier le formulaire par défaut pour l’application cliente
Dans l’Explorateur de solutions, double-cliquez sur le formulaire (Form1 si vous utilisez le formulaire par défaut).
Dans la boîte à outils, développez Contrôles communs, cliquez sur Bouton, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur queryButton, puis tapez Query dans la propriété Texte.
Dans la boîte à outils, cliquez sur ZoneTexte, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur queryTextBox, puis définissez Multiligne sur True.
Dans la boîte à outils, développez Données, cliquez sur DataGridView, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur resultsGrid.
Dans la boîte à outils, cliquez sur Étiquette, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur resultsLabel, puis supprimez le contenu de la propriété Texte.
Pour écrire le code pour l’application cliente
Double-cliquez sur queryButton pour ajouter un gestionnaire d’événements pour l’événement Click. L’éditeur de code s’ouvre, avec le curseur placé dans le gestionnaire d’événements queryButton_Click.
Ajoutez le code suivant à l’événement queryButton_Click :
try { // Instantiate the Web service. QueryWebServiceProxy.QueryService queryService = new QueryWebServiceProxy.QueryService(); // Use the credentials of the user running the client application. queryService.Credentials = System.Net.CredentialCache.DefaultCredentials; //Execute the QueryEx method, returning the results to a DataSet System.Data.DataSet queryResults = queryService.QueryEx(GetXMLString()); // Set the DataGridView data source to the first table in the DataSet oject, which contains the relevant results. resultsGrid.DataSource = queryResults.Tables[0]; } catch (Exception ex) { resultsLabel.Text = ex.ToString(); }
La chaîne transmise à la méthode QueryEx est construite dans la fonction GetXMLString. Ajoutez le code suivant à la classe Form1 pour créer la fonction GetXMLString.
private string GetXMLString() { /* The proceeding six lines of code is actually one line of code. It is separated into four lines here for readability. You will need to remove the line breaks when you copy the code to your project. */ StringBuilder xmlString = new StringBuilder("<QueryPacket xmlns='urn:Microsoft.Search.Query'> <Query><SupportedFormats><Format revision='1'> urn:Microsoft.Search.Response.Document:Document </Format></SupportedFormats><Context><QueryText language='en-US' type='STRING'>"); xmlString.Append(queryTextBox.Text); xmlString.Append("</QueryText></Context></Query></QueryPacket>"); return xmlString.ToString(); }
Pour tester l’application cliente
Appuyez sur F5 pour générer et exécuter l’application cliente.
Tapez une requête de mot clé dans la zone de texte. Pour plus d’informations sur la construction de requêtes de mot clé, voir Référence de syntaxe de requête par mots clés.
Cliquez sur Requête pour envoyer la requête de mot clé au service Web Query. Si des résultats sont retournés, ils apparaissent dans le contrôle DataGridView.
Voir aussi
Référence
QueryService
Concepts
Utilisation du service Web Query
Génération de requêtes de recherche