Olá pessoal, neste artigo criaremos um exemplo prático com alguns dos elementos da classe, abordados anteriormente. Acompanhem:

 Nos artigos anteriores criei uma solução no Visual Studio, dei a ela o nome de ExemploClasses. Adicionei um projeto do tipo Class Library (Biblioteca de Classes), dando a ele o nome de Elementos. Nele, criei os quatro elementos descritos anteriormente. Relembrando são: campos, métodos, propriedades e eventos.

 Usando essa solução, que será disponibilizada para download ao final deste artigo, crie um novo projeto do tipo Windows Forms, dando a ele o nome de VendasLoja. Nele, iremos fazer um cadastro básico de clientes e de vendas.

 Lembrando que o intuito aqui é mostrar o uso dos quatro elementos da classe, por isso não darei foco ao uso do ADO.NET nas operações de Insert do nosso projeto.

 Dito isto, criei um banco simples direto pelo Visual Studio chamado Vendas. Criei também duas tabelas: Clientes e Vendas, com a seguinte estrutura:


 Perceba que nem usei chaves primárias, já que o intuito do artigo não é esse. Agora no formulário arraste pra eles alguns controles que servirão para fazermos a inserção dos dados do Cliente. Crie também um novo form que receberá os dados da inserção da Venda, os forms deverão ficar assim:


 Usei os seguintes ID’s para os TextBoxes e Buttons: txtCodigo, txtNome, txtTelefone, txtEmail, txtDescricao, txtValorTotal, btnGravar e btnLimpar.

 Seguindo os conceitos de orientação a objetos e boas práticas, criei uma classe para fazer a conexão com o banco e com métodos para gravar clientes e vendas, usando assim alguns dos elementos descritos nos artigos anteriores. Não irei expô-los aqui, pelos motivos citados anteriormente, mais elas estarão no projeto se você baixa-lo, por isso não deixe de fazer o download!

 Veja o código do método GravarClientes:

 private bool GravarClientes()

        {

            bool bVerifica = false;

 

            try

            {

                Dados objDados = new Dados();

 

                objDados.GravarClientes(int.Parse(txtCodigo.Text), txtNome.Text, txtTelefone.Text, txtEmail.Text);

 

                MessageBox.Show("Registro gravado com sucesso!");

 

                bVerifica = true;

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

 

            return bVerifica;

        }

 Perceba que criei o método do tipo booleano, pelo seguinte: somente após a gravação correta de um cliente na base de dados é que irei “chamar” o form de Vendas. Para chama-lo preciso usar o delegate, que basicamente serve para armazenar o endereço de memória de uma função ou método.

 Veja abaixo que criei o método que irá instanciar meu form de Vendas e abri-lo por meio do método ShowDialog:

private void AtivaFormVendas(object sender, EventArgs e)

        {

            frmCadastroVendas objInstanciado = new frmCadastroVendas();

            objInstanciado.ShowDialog();

        }

 Finalizando faça a seguinte codificação no evento click do botão Gravar:

private void btnGravar_Click(object sender, EventArgs e)

        {

            if (GravarClientes())

            {

                //Instancio a classe EventHandler, passando como parâmetro meu método que irá abrir o form de Cadastro de Vendas

                System.EventHandler objDelegate = new EventHandler(this.AtivaFormVendas);

 

                //Ativo meu delegate pelo método Invoke

                objDelegate.Invoke(sender, e);

            }

        }

 Este é o motivo do meu método GravarClientes ser do tipo booleano. Assim valido se foi gravado um registro na base para depois chamar o form de Vendas por meio do método Invoke. Simples né?

 Perceba que usando os conceitos de classes e orientação a objetos temos um código mais limpo e bem menor!

 Não se esqueça de criar também o método para limpar os campos, que é bem simples, apenas atribuindo o valor string.Empty para os TextBoxes.

 Assim finalizo o artigo. Muito obrigado a todos!

 Um abraço, e até o próximo artigo.

 Wellington Balbo de Camargo

 wellingtonbalbo@gmail.com