Demonstra Passo a passo: Conectando a dados em um serviço da Web (Windows Forms)
Esta explicação passo a passo mostra como conectar seu aplicativo a um serviço da web usando o Assistente de Configuração de Fonte de Dados. Você se conectar ao serviço da web do Live Search e executar consultas de pesquisa a partir de seu aplicativo. Os dados retornados pelo serviço (os resultados de pesquisa) serão exibidos em um Windows Form.
As tarefas ilustradas neste passo a passo incluem:
Criando um novo projeto Windows Application.
Adicionando uma referência a um aplicativo de serviço (conectar ao serviço do Live Search).
Adicionando controles para executar consultas de pesquisa (chamar métodos expostos pelo serviço).
Escrevendo código para acessar o serviço e retornar dados.
Vinculação de dados retornados do serviço para o BindingSource.
Exiba os dados retornados do serviço em uma grade.
Obtendo um AppID
Um AppID do Live Search está disponível gratuitamente e identifica exclusivamente o seu aplicativo para o serviço do Live Search. O AppID é necessária para acessar o serviço.
Para obter um AppID
Navegue até http://search.live.com/developer e obtenha um AppID livre
Observação Poderá demorar algum tempo (30 a 60 minutos) para que o AppID validar com o serviço. Se você encontrar um genérico 'Erro de cliente' Isso dentro do tempo quando executar o aplicativo, é provável que o AppID ainda no processo de sendo ativado nos servidores do Live Search.
Criando o projeto
Para criar o novo projeto
No menu File, crie um novo projeto.
Selecione Windows Forms Application e nomeie- WebServiceWalkthrough.
Clique em OK.
O projeto é criado e adicionado ao Solution Explorer.
Conectando ao serviço
Conectar-se ao serviço da web executando o Data Source Configuration Wizard.
Para se conectar ao serviço da web do Live Search
No menu Data, clique em Show Data Sources.
Na janela Data Sources, selecione Add New Data Source.
Selecione Service na Escolher um tipo de fonte de dados de página e, em seguida, clique em próximo.
Tipo de https://soap.search.msn.com/webservices.asmx?wsdl na URL caixa da Add Service Reference caixa de diálogo.
Clique em Go.
Depois que o serviço da Web for encontrado, altere o Namespace para: LiveSearchService.
Clique em OKe em seguida, clique em Concluir para adicionar a referência de serviço ao seu projeto.
A referência de serviço é adicionada ao projeto e o Fontes de dados janela é preenchida com base nos itens retornados pelo serviço.
Observação |
---|
Como serviços da web diferente exponham recursos diferentes, as próximas etapas nesta explicação passo a passo são específicas para consumir o web service do Live Search. O processo típico para consumir dados de um serviço é criar uma instância do serviço e, em seguida, chamar métodos expostos pelo serviço. Depois de arrastar itens da janela fontes de dados do formulário deve conter um componente BindingSource; definir o DataSource propriedade para os dados retornados pelo serviço. |
Criar um DataGridView para exibir os dados retornados pelo serviço
Criar uma grade de dados de dados vinculados arrastando itens da Fontes de dados janela para o formulário. Depois de adicionar a grade, configure as colunas para exibir apenas as colunas que queremos apresentar. Em seguida, defina a coluna de Url para um link para que os usuários podem clicar no url e navegar para sites da web retornado pela consulta de pesquisa.
Para criar um DataGridView com dados vinculados
Expanda o SearchResponse nó a Fontes de dados janela.
Expanda o respostas nó.
Arraste o resultados o nó para o formulário.
Um DataGridView, BindingSource e BindingNavigator são adicionados ao formulário.
Selecione o resultsDataGridView que foi adicionado ao formulário.
No Propriedades janela Selecione a colunas propriedade e clique nas reticências (…) para abrir o Editar caixa de diálogo de colunas (modo de Design).
Selecione o Url coluna e o conjunto de:
ColumnType propriedade para DataGridViewLinkColumn.
AutoSizeMode propriedade para AllCells.
Remover todas as colunas, exceto o título, Descrição, e Url colunas.
Clique em OK.
Adicionando controles para inserir critérios de pesquisa e a execução da consulta de pesquisa
Adicione controles para a faixa de ferramentas existente para executar consultas de pesquisa.
Para adicionar uma caixa de texto e um botão ao formulário
Clique com botão direito no ícone de disco cinza na faixa de ferramentas do formulário e selecione Inserir seguido de TextBox.
No Propriedades janela, defina a nome propriedade para searchCriteriaTextBox.
Definir o texto propriedade para Visual Studio.
Adicionar um botão para o toolstrip e nomeie- searchButton.
No Propriedades janela, defina a DisplayStyle propriedade para texto.
Definir o texto propriedade para pesquisa.
Criando um manipulador de eventos para abrir o Site clicada na grade
Adiciona um manipulador de eventos para o CellContentClick de evento.
Para criar o manipulador de evento CellContentClick
Selecione o resultsDataGridView no formulário e clique no botão eventos de Propriedades janela. O botão de eventos é o botão com o ícone de raio.
Clique duas vezes o CellContentClick evento para criar e navegar para o fragmento de código do manipulador.
Adicione código para verificar qual coluna foi clicada e navegue até a página da web, se a coluna de Url for clicada:
Private Sub ResultsDataGridView_CellContentClick( _ ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _ Handles ResultsDataGridView.CellContentClick ' When the content in a cell is clicked check to see if it is the Url column. ' If it is, pass the url to the Process.Start method to open the web page. If ResultsDataGridView.Columns(e.ColumnIndex).DataPropertyName = "Url" Then System.Diagnostics.Process.Start(ResultsDataGridView.SelectedCells(0).Value) End If End Sub
private void resultsDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { // When the content in a cell is clicked check to see if it is the Url column. // If it is, pass the url to the Process.Start method to open the web page. if (resultsDataGridView.Columns[e.ColumnIndex].DataPropertyName == "Url") { System.Diagnostics.Process.Start(resultsDataGridView.SelectedCells[0].Value.ToString()); } }
Adicionando código para acessar o serviço do Live Search e executar uma consulta de pesquisa
Para acessar o serviço instanciando a uma instância do serviço em seu aplicativo e chamar os métodos expostos pelo serviço.
Para acessar e consumir o serviço.
Abra o Form1 no code editor.
Adicione o seguinte método Form1:
Private Sub RunSearchRequest() ' Create an instance of the service. Dim searchService As New LiveSearchService.MSNSearchPortTypeClient ' Instantiate a new SearchRequest. Dim searchRequest As New LiveSearchService.SearchRequest ' Create a new SourceRequest. Dim sourceRequest(1) As LiveSearchService.SourceRequest sourceRequest(0) = New LiveSearchService.SourceRequest ' To search the web, set the SourceType to Web. sourceRequest(0).Source = LiveSearchService.SourceType.Web ' Set the columns you want the query to return. sourceRequest(0).ResultFields = _ LiveSearchService.ResultFieldMask.Description And _ LiveSearchService.ResultFieldMask.Url And _ LiveSearchService.ResultFieldMask.Title ' Search for the text in the textbox. searchRequest.Query = searchCriteriaTextBox.Text ' Set the SearchRequest to the SourceRequest array. searchRequest.Requests = sourceRequest ' Replace with a valid AppID. Obtain a free AppID at: ' http://search.live.com/developer searchRequest.AppID = "AppID" searchRequest.CultureInfo = "en-US" ' Create a SearchResponse, then call the Search method ' and assign the return value to the response object. Dim searchResponse As LiveSearchService.SearchResponse = _ searchService.Search(searchRequest) ' Bind the results to the form's BindingSource. ResultsBindingSource.DataSource = searchResponse.Responses(0).Results End Sub
private void RunSearchRequest() { // Create an instance of the service. LiveSearchService.MSNSearchPortTypeClient searchService = new LiveSearchService.MSNSearchPortTypeClient(); // Instantiate a new search request. LiveSearchService.SearchRequest searchRequest = new LiveSearchService.SearchRequest(); // Create a new SourceRequest. LiveSearchService.SourceRequest[] sourceRequest = new LiveSearchService.SourceRequest[1]; sourceRequest[0] = new LiveSearchService.SourceRequest(); // Set the number of results to return. sourceRequest[0].Count = 7; // To search the web, set the SourceType to Web. sourceRequest[0].Source = LiveSearchService.SourceType.Web; // Set the columns to be returned from the search query. sourceRequest[0].ResultFields = LiveSearchService.ResultFieldMask.Description | LiveSearchService.ResultFieldMask.Url | LiveSearchService.ResultFieldMask.Title; // Set the search query to the value in the text box. searchRequest.Query = searchCriteriaTextBox.Text; // Set the search request to the array of source requests. searchRequest.Requests = sourceRequest; // Replace with a valid AppID. Obtain a free AppID at: // http://search.live.com/developer searchRequest.AppID = "AppID"; searchRequest.CultureInfo = "en-US"; // Create a SearchResponse, then call the search method // and assign the return value to the response object. LiveSearchService.SearchResponse searchResponse = searchService.Search(searchRequest); // Bind the results from the search query to the form's BindingSource. resultsBindingSource.DataSource = searchResponse.Responses[0].Results; }
Observação |
---|
Certifique-se de substituir searchRequest.AppID = "appid" com o valor de AppID obtido o serviço do Live Search. |
Criando um manipulador de eventos para executar uma pesquisa quando se clica no botão de pesquisa
Criar um manipulador de eventos para o evento searchButton.Click e chamar o método RunSearchRequest.
Para implementar a pesquisa quando o botão é clicado.
Abra Form1 no modo Design.
Clique duas vezes o pesquisa botão.
Adicione a seguinte linha de código no manipulador gerado:
Private Sub searchButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles searchButton.Click RunSearchRequest() End Sub
private void searchButton_Click(object sender, EventArgs e) { RunSearchRequest(); }
Executando o aplicativo
Execute o aplicativo e execute uma pesquisa.
Para executar o aplicativo e execute uma pesquisa
Execute o aplicativo (pressione F5).
Clique em pesquisa para pesquisar na web para Visual Studio, o texto padrão em que o searchCriteriaTextBox.
A grade exibirá os primeiros resultados de pesquisa de dez.
Clique em uma das Urls para navegar até o site da web.
Tipo de O clima Redmond WA na caixa de texto e clique pesquisa.
As atualizações de grade com novos resultados da pesquisa.
Próximas etapas
Acessar o serviço do Live Search serve apenas como um ponto de partida para entender como exibir os dados retornados de um serviço utilizando os recursos de ligação de dados em aplicativos Windows Forms. Depois de conectar a um serviço diferente e arrastando itens da Fontes de dados janela formulário deve conter um componente BindingSource; definir o DataSource propriedade para os dados retornados pelo serviço. Para obter mais informações, consulte Visão geral sobre o componente BindingSource.
Observação |
---|
Os itens que aparecem na janela Data Sources são dependentes das informações que retornam do serviço da Web. Alguns serviços da Web podem fornecer informações não suficientes ao Data Source Configuration Wizard para criar objetos ligáveis. Por exemplo, se o serviço da Web retorna um objeto que não fornece qualquer esquema detectável, nenhum item aparecerá na Fontes de dados janela após concluir o assistente. |
Para adicionar funcionalidade a seu aplicativo
Selecione itens na janela Data Sources e arraste-os para um formulário. Para obter mais informações, consulte Vinculação de controles do Windows Forms a dados em Visual Studio.
Crie uma instância do serviço no formulário.
Definir o gerado DataSource propriedade para os dados retornados pelo serviço da web.
Consulte também
Conceitos
Controles de vinculação de dados de Visual Studio