Usuário com melhor resposta
Table...

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
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
):
- 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.aspxADO.NET - Uma visão geral I : Objetos Connection , Command e DataReader
http://www.macoratti.net/ado_net1.htmADO.NET – Uma nova arquitetura para acesso a banco de dados
http://www.linhadecodigo.com.br/Artigo.aspx?id=11Curso Básico de Visual Basic .net (VB.Net)
http://www.so-dicas.com/dicas/programacao/visualbasic/cursobasico.phpReferência rápida ADO.net
http://www.dei.isep.ipp.pt/~mouta/ARQSI-2006-2007-1Sem/op_adonet.htmAbraços,
Caio Proiete
Caio Proiete
http://www.caioproiete.com- Sugerido como Resposta C. Augusto Proiete [MVP]Moderator domingo, 1 de fevereiro de 2009 17:13
- Marcado como Resposta C. Augusto Proiete [MVP]Moderator sexta-feira, 24 de julho de 2009 16:05
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
):
- 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.aspxADO.NET - Uma visão geral I : Objetos Connection , Command e DataReader
http://www.macoratti.net/ado_net1.htmADO.NET – Uma nova arquitetura para acesso a banco de dados
http://www.linhadecodigo.com.br/Artigo.aspx?id=11Curso Básico de Visual Basic .net (VB.Net)
http://www.so-dicas.com/dicas/programacao/visualbasic/cursobasico.phpReferência rápida ADO.net
http://www.dei.isep.ipp.pt/~mouta/ARQSI-2006-2007-1Sem/op_adonet.htmAbraços,
Caio Proiete
Caio Proiete
http://www.caioproiete.com- Sugerido como Resposta C. Augusto Proiete [MVP]Moderator domingo, 1 de fevereiro de 2009 17:13
- Marcado como Resposta C. Augusto Proiete [MVP]Moderator sexta-feira, 24 de julho de 2009 16:05
-
-
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