none
Como inserir linhas no DataGridView sem o registro "pai" estar cadastrado? RRS feed

  • Pergunta

  • Vou exemplificar meu problema:

    Preciso cadastrar um produto (Form 1), informo nome e descrição, na tabPage "Acessórios" tem um DataGridView, na qual desejo adicionar os acessórios (Form 2) do produto que ainda não foi salvo no banco de dados mas preciso que apareçam no DataGridView logo após "incluir" o acessório. Ao clicar em gravar do Form Produto, salvo o Produto e todos os acessórios. Como faço para exibir os acessórios no DataGridView que tem o dataSource preenchido pelo banco de dados. Neste momento, estou usando DataTable para alimentar os DataGridView's.

    Windows Forms Application + C# + .net 4.0

    sexta-feira, 3 de agosto de 2012 13:13

Respostas

  • Amigo,

    Não sei se entendi bem seu problema mas vamos lá.

    1º Criando Classe e preenchendo os objetos.

    Você pode criar um Classe  Acessório e um outra Produto, e na classe produto cria uma propriedade que é uma lista de Acessórios, ai você instancia o Produto e preenche no Form1, os acessórios do Form 2 serão preenchidos na propriedade acessórios de produto.

        public class Acessorios
        {
            public string Nome { get; set; }
            public string Descricao { get; set; }
        }
    
        public class Produto
        {
            public int idProduto { get; set; }
            public string Nome { get; set; }
            public string Descricao { get; set; }
            public List<Acessorios> acessorios { get; set; }
        }

    2º Persistindo no banco.

    Para gravar no banco você pode criar um método e passar como parâmetro o seu objeto produto, grave o produto e pegue o seu Id, faça um laço de repetição na propriedade acessórios, e grave os acessórios passando o Id retornado do produto.

    Não sei qual é o banco que você esta usando e como esta gravando, se não entendeu a ideia ou precisar de algum exemplo pode postar aqui e se possível mande o seu código de como está gravando no banco.

    Importante: Como você esta gravando em duas tabelas é importante usar transação.

    http://msdn.microsoft.com/pt-br/library/2k2hy99x(v=vs.80).aspx

    Boa Sorte.

    Saulo.

    • Marcado como Resposta ERIC BAUMBACH sexta-feira, 17 de agosto de 2012 16:58
    sexta-feira, 3 de agosto de 2012 15:37