Molinari 0 Report post Posted September 4, 2009 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
quintelab 91 Report post Posted September 4, 2009 Utilize um NewRow: http://msdn.microsoft.com/pt-br/library/system.data.datatable.newrow.aspx http://www.victorchen.info/add-rows-to-a-datatable-in-c/ Abraços... Share this post Link to post Share on other sites
Molinari 0 Report post Posted September 4, 2009 Utilize um NewRow: http://msdn.microsoft.com/pt-br/library/system.data.datatable.newrow.aspx http://www.victorchen.info/add-rows-to-a-datatable-in-c/ Abraços... 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
quintelab 91 Report post Posted September 4, 2009 Poste o código aqui usando newrow. Abraços... Share this post Link to post Share on other sites
Molinari 0 Report post Posted September 4, 2009 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
scorpio 7 Report post Posted September 5, 2009 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