none
Dataset tipado RRS feed

  • Pergunta

  •  

    Por favor, como faço para consumir um webservice com dataset tipo.

    É que gostaria de fazer a vinculação de dados no form. (estou usando winforms)

     

    o webservice já está com o dataset tipado. gostaria de passar para o form e vincular ao

    datagridview e aos texts.

     

    Grato pela atenção

    sábado, 24 de janeiro de 2009 23:33

Respostas

  • Entao o proble eh outro Edson... pq fiz os procedimentos aqui para ter certeza que nao me escapou nenhum detalhe e funcionaram corretamente na minha maquina...

     

    WebService:

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Services;

    namespace WebService1 {

    ///

    /// Summary description for Service1

    ///

    [WebService(Namespace = "http://tempuri.org/")]

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    [System.ComponentModel.ToolboxItem(false)]

    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.

    // [System.Web.Script.Services.ScriptService]

    public class Service1 : System.Web.Services.WebService {

    [WebMethod]

    public string HelloWorld() {

    return "Hello World";

    }

    [WebMethod]

    public DataSet1.UnidadeMedidaDataTable GetUnidadeBySigla(string sigla) {

    using (var adapter = new DataSet1TableAdapters.UnidadeMedidaTableAdapter()) {

    return adapter.GetDataBySigla(sigla);

    }

    }

    }

    }

     

     

    Form 1

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    namespace Gerenciador {

    public partial class Form1 : Form {

    public Form1() {

    InitializeComponent();

    }

    private void Form1_Shown(object sender, EventArgs e) {

    using (var service = new localhost.Service1()) {

    unidadeMedidaBindingSource.DataSource = service.GetUnidadeBySigla("LT");

    }

    }

    }

    }

     

     

    segunda-feira, 26 de janeiro de 2009 20:19
    Moderador

Todas as Respostas

  •  

    Oi Edson... se entendi bem... vc quer trabalhar com webservice da mesma forma q faria com um sistema cliente servidor...

     

    Bem a unica forma de se trabalhar com WS é desconectado... isso eh... vc requisita os dados do service, manipula no cliente e envia para o service... em processos separados... Não tem como trabalhar como se tivesse conectado diretamente ao banco de dados...

     

    Era essa a sua duvida ?

     

     

    segunda-feira, 26 de janeiro de 2009 12:12
    Moderador
  • não é bem isto. é que eu quero trabalhar com o dataset tipado, aproveitando o databind. o webservice já retorna um datatable através de um dataset tipado. se eu faço a ligação com um datagridview dá tudo certo, porém não sei como fazer as ligações com os textbox. ex: meugridview.datasource = meuwebservice.mostrarclientes. até aí tudo ok. o que eu quero fazer é, no form fazer a conexão tipo o gridview. mas não manualmente e sim através do dataset

    segunda-feira, 26 de janeiro de 2009 12:19
  •  

    Seu projeto eh ASP.NET ou Windows Forms ?
    segunda-feira, 26 de janeiro de 2009 14:59
    Moderador
  • windows form.

    segunda-feira, 26 de janeiro de 2009 16:01
  • Um... tenta fazer o seguinte:

     

    Adiciona a referencia do teu service ao projeto...

    Abre um form em branco e deixa no modo de desing

    Vai aparece um menu Data no Visual Studio

    Clica nele e escolhe a opcao, Show Data Sources

    Vai aparece uma janela com o seu service, nele vai ter seu dataset e la dentro a sua tabela

    Clica no dropdown ao lado da tabela

    seleciona Details

    Arrasta a tabela para o formulario

     

     

    Se tudo der certo, ele ja vai criar todos os componentes para vc e criar todas as conexoes automaticamente....

     

    T+

    segunda-feira, 26 de janeiro de 2009 19:32
    Moderador
  • Oi Rui, quando clico em show data sources não aparece nada, a tela está em branco.

    O webservice aparece no gerenciado de soluções. eu consigo usá-lo manualmente.

    grato

     

    segunda-feira, 26 de janeiro de 2009 19:43
  • Voce tem um WebMethod que esta retornando um DataTable ?

     

    E clicou em atualizar o WebSevice ?

    segunda-feira, 26 de janeiro de 2009 20:06
    Moderador
  • sim tenho. o webservice está funcionando legal. mas tenho que fazer tudo manualmente.

    quando conecto a um datagridview ele funciona certino. o problema é que não estou conseguindo fazer uma

    conexao com os textbox. tenho que ficar fazendo uma a um.

     

    segunda-feira, 26 de janeiro de 2009 20:09
  • Entao o proble eh outro Edson... pq fiz os procedimentos aqui para ter certeza que nao me escapou nenhum detalhe e funcionaram corretamente na minha maquina...

     

    WebService:

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Services;

    namespace WebService1 {

    ///

    /// Summary description for Service1

    ///

    [WebService(Namespace = "http://tempuri.org/")]

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    [System.ComponentModel.ToolboxItem(false)]

    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.

    // [System.Web.Script.Services.ScriptService]

    public class Service1 : System.Web.Services.WebService {

    [WebMethod]

    public string HelloWorld() {

    return "Hello World";

    }

    [WebMethod]

    public DataSet1.UnidadeMedidaDataTable GetUnidadeBySigla(string sigla) {

    using (var adapter = new DataSet1TableAdapters.UnidadeMedidaTableAdapter()) {

    return adapter.GetDataBySigla(sigla);

    }

    }

    }

    }

     

     

    Form 1

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    namespace Gerenciador {

    public partial class Form1 : Form {

    public Form1() {

    InitializeComponent();

    }

    private void Form1_Shown(object sender, EventArgs e) {

    using (var service = new localhost.Service1()) {

    unidadeMedidaBindingSource.DataSource = service.GetUnidadeBySigla("LT");

    }

    }

    }

    }

     

     

    segunda-feira, 26 de janeiro de 2009 20:19
    Moderador
  •  

    #region Windows Form Designer generated code

    /// <summary>

    /// Required method for Designer support - do not modify

    /// the contents of this method with the code editor.

    /// </summary>

    private void InitializeComponent() {

    this.components = new System.ComponentModel.Container();

    [...]

    this.dataSet1 = new Gerenciador.localhost.DataSet1();

    this.unidadeMedidaBindingSource = new System.Windows.Forms.BindingSource(this.components);

    this.unidadeMedidaBindingNavigator = new System.Windows.Forms.BindingNavigator(this.components);

    this.iDTextBox = new System.Windows.Forms.TextBox();

    this.siglaTextBox = new System.Windows.Forms.TextBox();

    this.descricaoTextBox = new System.Windows.Forms.TextBox();

    this.ativaCheckBox = new System.Windows.Forms.CheckBox();

    ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();

    ((System.ComponentModel.ISupportInitialize)(this.unidadeMedidaBindingSource)).BeginInit();

    ((System.ComponentModel.ISupportInitialize)(this.unidadeMedidaBindingNavigator)).BeginInit();

    this.unidadeMedidaBindingNavigator.SuspendLayout();

    this.SuspendLayout();

    //

    // dataSet1

    //

    this.dataSet1.DataSetName = "DataSet1";

    this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;

    //

    // unidadeMedidaBindingSource

    //

    this.unidadeMedidaBindingSource.DataMember = "UnidadeMedida";

    this.unidadeMedidaBindingSource.DataSource = this.dataSet1;

    //

    // unidadeMedidaBindingNavigator

    //

    this.unidadeMedidaBindingNavigator.AddNewItem = this.bindingNavigatorAddNewItem;

    this.unidadeMedidaBindingNavigator.BindingSource = this.unidadeMedidaBindingSource;

    this.unidadeMedidaBindingNavigator.CountItem = this.bindingNavigatorCountItem;

    this.unidadeMedidaBindingNavigator.DeleteItem = this.bindingNavigatorDeleteItem;

    this.unidadeMedidaBindingNavigator.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {

    [..]//

    // iDTextBox

    //

    this.iDTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.unidadeMedidaBindingSource, "ID", true));

    this.iDTextBox.Location = new System.Drawing.Point(310, 86);

    this.iDTextBox.Name = "iDTextBox";

    this.iDTextBox.Size = new System.Drawing.Size(104, 20);

    this.iDTextBox.TabIndex = 2;

    //

    // siglaTextBox

    //

    this.siglaTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.unidadeMedidaBindingSource, "Sigla", true));

    this.siglaTextBox.Location = new System.Drawing.Point(310, 112);

    this.siglaTextBox.Name = "siglaTextBox";

    this.siglaTextBox.Size = new System.Drawing.Size(104, 20);

    this.siglaTextBox.TabIndex = 4;

    // descricaoTextBox

    //

    this.descricaoTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.unidadeMedidaBindingSource, "Descricao", true));

    this.descricaoTextBox.Location = new System.Drawing.Point(310, 138);

    this.descricaoTextBox.Name = "descricaoTextBox";

    this.descricaoTextBox.Size = new System.Drawing.Size(104, 20);

    this.descricaoTextBox.TabIndex = 6;

    // ativaCheckBox

    //

    this.ativaCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.unidadeMedidaBindingSource, "Ativa", true));

    this.ativaCheckBox.Location = new System.Drawing.Point(310, 164);

    this.ativaCheckBox.Name = "ativaCheckBox";

    this.ativaCheckBox.Size = new System.Drawing.Size(104, 24);

    this.ativaCheckBox.TabIndex = 8;

    this.ativaCheckBox.Text = "checkBox1";

    this.ativaCheckBox.UseVisualStyleBackColor = true;

    //

    // Form1

    //

    this.Shown += new System.EventHandler(this.Form1_Shown);

    ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit();

    ((System.ComponentModel.ISupportInitialize)(this.unidadeMedidaBindingSource)).EndInit();

    ((System.ComponentModel.ISupportInitialize)(this.unidadeMedidaBindingNavigator)).EndInit();

    this.unidadeMedidaBindingNavigator.ResumeLayout(false);

    this.unidadeMedidaBindingNavigator.PerformLayout();

    this.ResumeLayout(false);

    this.PerformLayout();

    }

    #endregion

    segunda-feira, 26 de janeiro de 2009 20:24
    Moderador
  • Rui, obrigado pelas dicas. vou tentar resolver com estes exemplos.

     

    segunda-feira, 26 de janeiro de 2009 21:01
  • Ah agora q eu lembrei... vc atualizou o seu Visual Studio ??? acho q ele falhava mesmo as veses nesse ponto...
    No mais tenta fazer um projeto novo de teste... parece mais ser algum bug
    terça-feira, 27 de janeiro de 2009 00:37
    Moderador
  • Boas,

    Eu tenho uma aplicação Windows Forms que permite a manipulação da informação das tabelas da Base de Dados, via WebService. Pretendo que ilustre as operações mais comuns de manipulação (edição, alteração, remoção e consultas adequadas)

    Isto é feito com o windows form onde carrego num botao que me vai buscar os dados à base de dados e me mostra numa grid.

    O que pretendo fazer e nao estou a conseguir é programar os botoes de adicionar, remover e gravar dados nessa grid...

    Alguem me pode ajudar!!!

    terça-feira, 25 de janeiro de 2011 17:36