Compartilhar via


Instruções passo a passo: conectando a dados em um serviço Web (Windows Forms)

Esta explicação passo a passo mostra como conectar seu aplicativo a um serviço de web usando o Assistente para Configuração da 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 da 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-se 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.

  • Vincular os dados retornados do serviço com 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

    Dica

    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' ao 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

  1. No menu File, crie um novo projeto.

  2. Selecione Windows Forms Application e o nome de WebServiceWalkthrough.

  3. Clique em OK.

    O projeto é criado e adicionado ao Solution Explorer.

Conectando ao serviço

Se conecta ao serviço da web, executando o Data Source Configuration Wizard.

  1. No menu Data, clique em Show Data Sources.

  2. Na janela Data Sources, selecione Add New Data Source.

  3. Selecione Service na Choose a Data Source Type de página e, em seguida, clique em próximo.

  4. Tipo de https://soap.search.msn.com/webservices.asmx?wsdl na URL caixa da Add Service Reference caixa de diálogo.

  5. Clique em Go.

  6. Depois que o serviço da Web for encontrado, altere o Namespace para: LiveSearchService.

  7. 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 está preenchida com base nos itens retornados pelo serviço.

Dica

Como serviços da web diferentes exponham uma funcionalidade diferente, 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 com dados vinculados arrastando itens a partir de Fontes de dados janela para o formulário. Depois de adicionar a grade, configure as colunas para exibir apenas as colunas que deseja apresentar. Em seguida, defina a coluna de Url a 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

  1. Expanda o SearchResponse nó a Fontes de dados janela.

  2. Expanda o respostas nó.

  3. Arraste o resultados o nó para o formulário.

    Um DataGridView, BindingSource e BindingNavigator são adicionados ao formulário.

  4. Selecione o resultsDataGridView que foi adicionado ao formulário.

  5. No Propriedades janela Selecione a colunas propriedade e clique nas reticências (…) para abrir o Editar caixa de diálogo de colunas (modo Design).

  6. Selecione o Url coluna e o conjunto de:

    1. ColumnType propriedade para DataGridViewLinkColumn.

    2. AutoSizeMode propriedade para AllCells.

  7. Remover todas as colunas, exceto o título, Descrição, e Url colunas.

  8. Clique em OK.

Adicionando controles para inserir critérios de pesquisa e executar a consulta de pesquisa

Adicione controles para a faixa de ferramentas existentes para a execução de consultas de pesquisa.

Para adicionar uma caixa de texto e um botão ao formulário

  1. Clique com botão direito no ícone de disco cinza na faixa de ferramenta do formulário e selecione Inserir seguido de TextBox.

  2. No Propriedades janela, defina a nome propriedade para searchCriteriaTextBox.

  3. Definir o texto propriedade para Visual Studio.

  4. Adicionar um botão para o toolstrip e nomeie- searchButton.

  5. No Propriedades janela, defina a DisplayStyle propriedade para texto.

  6. Definir o texto propriedade para pesquisa.

Criando um manipulador de eventos para abrir o Site clicada na grade

Adiciona um manipulador para o CellContentClick evento.

Para criar o manipulador de evento CellContentClick

  1. Selecione o resultsDataGridView no formulário e clique no botão eventos no Propriedades janela. O botão de eventos é o botão com o ícone de raio.

  2. Clique duas vezes o CellContentClick evento para criar e navegar para o fragmento de código do manipulador.

  3. 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 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

  1. Abra o Form1 no code editor.

  2. 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;
    }
    

Dica

Certifique-se de substituir searchRequest.AppID = "AppID" com o valor de AppID obtido do serviço do Live Search.

Criando um manipulador de eventos para executar uma pesquisa quando se clica no botão de pesquisa

Crie um manipulador de eventos para o evento searchButton.Click e chamar o método RunSearchRequest.

Para implementar a pesquisa quando o botão é clicado.

  1. Abra Form1 no modo Design.

  2. Clique duas vezes o pesquisa botão.

  3. 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

  1. Execute o aplicativo (pressione F5).

  2. 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.

  3. Clique em uma das Urls para navegar até o site da web.

  4. Tipo de O clima Redmond WA na caixa de texto e clique pesquisa.

    As atualizações de grade com os novos resultados de 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 seu 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 do componente BindingSource.

Dica

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

Consulte também

Conceitos

Associando controles a dados no Visual Studio

Editando dados no aplicativo

Validando dados

Salvando dados

Outros recursos

Instruções passo a passo de dados