none
Table... RRS feed

  • Pergunta

  • Olá Pessoal

     

    Gostaria de saber como atribuir a um textbox um campo de uma Tabela do banco de dados..

     

    por exemplo:

     

    txtproduto.Text = ds.Tables[0,"PRODUTO"].ToString();

     

    , onde ds é o dataset

      0 é a Tabela

      PRODUTO é o campo que eu criei na Tabela.

     

    Do jeito que eu estou fazendo nao ta dando :/

     

    O que eu estou querendo fazer é o seguinte:

     

    Quando eu digitar o código do produto em um campo textbox, no outro textbox tem que aparecer o nome do produto relativo com o código

     

    Agradeço se puderem me ajudar!!

    Abrss

    quarta-feira, 31 de dezembro de 2008 20:54

Respostas

  • Olá Rodolpho,

     

    Pelo seu exemplo, suponho que você já esteja conseguindo carregar os dados da sua tabela em memória, dentro de um DataTable, que por sua vez, está dentro de um DataSet.

     

    Para dar uma visão geral (e rápida Smile):

     

    - Um DataSet tem uma coleção DataTables (Tables) que representam as tabelas;

    - Um DataTable tem uma coleção de DataRows (Rows) que representam os registros de uma tabela;

    - Um DataRow tem uma coleção de DataColumn (Columns) que representam os campos de cada registro registros de uma tabela;

     

    Assim, como um trecho de código comentado vale mais que mil palavras:

     

    Code Snippet

     

     // Obtém os dados do seu banco de dados de algum jeito...

     DataSet ds = ...;

     

     // Obtém uma referência para a tabela produtos

     DataTable produtos = ds.Tables["Produtos"];

     

     // A tabela possui algum registro?

     if (produtos.Rows.Count > 0)

     {

    // Sim...

     

    // Obtém a primeira linha da tabela produtos (Linha Zero)

    DataRow registro = produtos.Rows[0];

     

    // Finalmente, mostra o conteúdo do campo "NomeProduto"

    // na sua caixa de texto

    suaCaixaDeTexto.Text = registro["NomeProduto"].ToString();

     }

     else

     {

    // Não...

    suaCaixaDeTexto.Text = "Não há registros...";

     }

     

     

     

    Para facilitar o entendimento, separei cada etapa em passos diferentes, mas você também pode utilizar alguns atalhos para acessar as mesmas coleções (embora normalmente não seja a melhor opção por questões de performance):

     

    Code Snippet

     

     // Obtém o campo "NomeProduto" do primeiro registro da tabela "Produtos" do DataSet

     // assumindo que exista pelo menos um registro...

     suaCaixaDeTexto.Text = ds.Tables["Produtos"].Rows[0]["NomeProduto"].ToString();

     

     

    ---

     

    Sinceramente, o melhor caminho seria você estudar o básico sobre ADO .NET, por isso sugiro pelo menos a leitura dos artigos abaixo:

     

    ADO .NET para Iniciantes
    http://www.mutex.com.br/blogs/ramonduraes/archive/2007/07/12/ado-net-para-iniciantes.aspx

     

    ADO.NET - Uma visão geral  I :  Objetos Connection ,  Command e DataReader
    http://www.macoratti.net/ado_net1.htm

     

    ADO.NET – Uma nova arquitetura para acesso a banco de dados
    http://www.linhadecodigo.com.br/Artigo.aspx?id=11

     

    Curso Básico de Visual Basic .net (VB.Net)
    http://www.so-dicas.com/dicas/programacao/visualbasic/cursobasico.php

     

    Referência rápida ADO.net
    http://www.dei.isep.ipp.pt/~mouta/ARQSI-2006-2007-1Sem/op_adonet.htm

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quinta-feira, 1 de janeiro de 2009 01:08
    Moderador

Todas as Respostas

  • Olá Rodolpho,

     

    Pelo seu exemplo, suponho que você já esteja conseguindo carregar os dados da sua tabela em memória, dentro de um DataTable, que por sua vez, está dentro de um DataSet.

     

    Para dar uma visão geral (e rápida Smile):

     

    - Um DataSet tem uma coleção DataTables (Tables) que representam as tabelas;

    - Um DataTable tem uma coleção de DataRows (Rows) que representam os registros de uma tabela;

    - Um DataRow tem uma coleção de DataColumn (Columns) que representam os campos de cada registro registros de uma tabela;

     

    Assim, como um trecho de código comentado vale mais que mil palavras:

     

    Code Snippet

     

     // Obtém os dados do seu banco de dados de algum jeito...

     DataSet ds = ...;

     

     // Obtém uma referência para a tabela produtos

     DataTable produtos = ds.Tables["Produtos"];

     

     // A tabela possui algum registro?

     if (produtos.Rows.Count > 0)

     {

    // Sim...

     

    // Obtém a primeira linha da tabela produtos (Linha Zero)

    DataRow registro = produtos.Rows[0];

     

    // Finalmente, mostra o conteúdo do campo "NomeProduto"

    // na sua caixa de texto

    suaCaixaDeTexto.Text = registro["NomeProduto"].ToString();

     }

     else

     {

    // Não...

    suaCaixaDeTexto.Text = "Não há registros...";

     }

     

     

     

    Para facilitar o entendimento, separei cada etapa em passos diferentes, mas você também pode utilizar alguns atalhos para acessar as mesmas coleções (embora normalmente não seja a melhor opção por questões de performance):

     

    Code Snippet

     

     // Obtém o campo "NomeProduto" do primeiro registro da tabela "Produtos" do DataSet

     // assumindo que exista pelo menos um registro...

     suaCaixaDeTexto.Text = ds.Tables["Produtos"].Rows[0]["NomeProduto"].ToString();

     

     

    ---

     

    Sinceramente, o melhor caminho seria você estudar o básico sobre ADO .NET, por isso sugiro pelo menos a leitura dos artigos abaixo:

     

    ADO .NET para Iniciantes
    http://www.mutex.com.br/blogs/ramonduraes/archive/2007/07/12/ado-net-para-iniciantes.aspx

     

    ADO.NET - Uma visão geral  I :  Objetos Connection ,  Command e DataReader
    http://www.macoratti.net/ado_net1.htm

     

    ADO.NET – Uma nova arquitetura para acesso a banco de dados
    http://www.linhadecodigo.com.br/Artigo.aspx?id=11

     

    Curso Básico de Visual Basic .net (VB.Net)
    http://www.so-dicas.com/dicas/programacao/visualbasic/cursobasico.php

     

    Referência rápida ADO.net
    http://www.dei.isep.ipp.pt/~mouta/ARQSI-2006-2007-1Sem/op_adonet.htm

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quinta-feira, 1 de janeiro de 2009 01:08
    Moderador
  • caio, vc tirou a minha dúvida e como ainda sou iniciante em C# vou ler os artigos. Smile

     

    Obrigado.

    Abraços.

    quinta-feira, 1 de janeiro de 2009 17:39
  •  Rodolpho Sbaraglini wrote:

    Caio, vc tirou a minha dúvida e como ainda sou iniciante em C# vou ler os artigos.

     

    Ótimo!

     

    Abraços,

    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    sábado, 3 de janeiro de 2009 21:24
    Moderador