Jump to content

POWERED BY:

Archived

This topic is now archived and is closed to further replies.

Molinari

Inserir dados em um DataTable C#

Recommended Posts

Tenho um form e uma classe . no pego os dados do form passo para os atributos da classe.. na classe tenho um metodo

 

public DataTable IncluirDT()
{
   DataTable tabela = new DataTable();
           tabela.Columns.Add("Codigo da Peça", typeof(int));
           tabela.Columns.Add("Codigo da Marca", typeof(int));
           tabela.Columns.Add("Quantidade", typeof(int));
           tabela.Columns.Add("Local da Peça", typeof(string));
           tabela.Columns.Add("Preço de Compra", typeof(double));
           tabela.Columns.Add("Preço de Venda", typeof(double));
           
           tabela.Rows.Add(_id, _cod_marca, _quantidade, _localPeca, _precoCompra, _precoVenda);
           
           return tabela;
}
isso funciona. mas eu quero inserir mais de 1 row. e quando eu mando inserir outro ele sobrepõe o row em vez de adicionar + 1;

 

 

 

se alguem tiver a solução ... agradeço desde já!!

Share this post


Link to post
Share on other sites

 

 

ja fiz isso tbm.... o que to tentando fazer e igual venda com itens de venda.... eu posso adicionar varios itens na venda.... mais quando eu insiro o primeiro row da certo ai eu vo la e insiro o segundo row ele sobrescreve o primeiro. e ja fiz do jeito que esta nesse link que mando. ja tinha vista da o mesmo resultado...

Share this post


Link to post
Share on other sites

Poste o código aqui usando newrow.

 

Abraços...

 

 

DataTable tabela = new DataTable();
            tabela.Columns.Add("Codigo da Peça", typeof(int));
            tabela.Columns.Add("Codigo da Marca", typeof(int));
            tabela.Columns.Add("Quantidade", typeof(int));
            tabela.Columns.Add("Local da Peça", typeof(string));
            tabela.Columns.Add("Preço de Compra", typeof(double));
            tabela.Columns.Add("Preço de Venda", typeof(double));

            DataRow Row = tabela.NewRow();
            Row["Codigo da Peça"] = textcodigo.Text;
            Row["Codigo da Marca"] = textcodmarca.Text;
            Row["Quantidade"] = textmarcaqdte.Text;
            Row["Local da Peça"] = textlocalpeca.Text;
            Row["Preço de Compra"] = textcompra.Text;
            Row["Preço de Venda"] = textvenda.Text;

            tabela.Rows.Add(Row);
           
            dataGridView2.DataSource = tabela;

Share this post


Link to post
Share on other sites

DataTable tabela = new DataTable();
tabela.Columns.Add("Codigo da Peça", typeof(int));
tabela.Columns.Add("Codigo da Marca", typeof(int));
tabela.Columns.Add("Quantidade", typeof(int));
tabela.Columns.Add("Local da Peça", typeof(string));
tabela.Columns.Add("Preço de Compra", typeof(double));
tabela.Columns.Add("Preço de Venda", typeof(double));

DataRow Row = tabela.NewRow();
Row["Codigo da Peça"] = textcodigo.Text;
Row["Codigo da Marca"] = textcodmarca.Text;
Row["Quantidade"] = textmarcaqdte.Text;
Row["Local da Peça"] = textlocalpeca.Text;
Row["Preço de Compra"] = textcompra.Text;
Row["Preço de Venda"] = textvenda.Text;

tabela.Rows.Add(Row);

dataGridView2.DataSource = tabela;

Você chama o código todo numa função?

Se for isso, é que toda vez que você chama é criado um novo DataTable. Por isso dá a impressão que sobrepos o registro.

 

DataTable tabela;
void CreateTable(){
tabela = new DataTable();
tabela.Columns.Add("Codigo da Peça", typeof(int));
tabela.Columns.Add("Codigo da Marca", typeof(int));
tabela.Columns.Add("Quantidade", typeof(int));
tabela.Columns.Add("Local da Peça", typeof(string));
tabela.Columns.Add("Preço de Compra", typeof(double));
tabela.Columns.Add("Preço de Venda", typeof(double));
}
void AddRow(){
DataRow Row = tabela.NewRow();
Row["Codigo da Peça"] = textcodigo.Text;
Row["Codigo da Marca"] = textcodmarca.Text;
Row["Quantidade"] = textmarcaqdte.Text;
Row["Local da Peça"] = textlocalpeca.Text;
Row["Preço de Compra"] = textcompra.Text;
Row["Preço de Venda"] = textvenda.Text;

tabela.Rows.Add(Row);

dataGridView2.DataSource = tabela;}

Chama o CreateTable uma vez, e para inserir chama o AddRow.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.