Olá pessoal, neste artigo irei criar um sistema simples para uma Biblioteca. Nele, irei usar as operações básicas de CRUD para fazer o cadastro, exclusão, atualização e a consulta de livros, funcionários e clientes. Não farei o mesmo em três camadas, já que o foco deste artigo não é este e, como já disse antes, será algo simples.

 Para este artigo usarei o banco SQL Server 2008 Express, em conjunto com o Visual Studio 2008 Professional SP1.

 Nesta parte vamos modelar o banco de dados e começar a criar as telas. Para isso, abra o SQL Server 2008 (ou 2005) para criarmos as tabelas referentes à nossa Biblioteca. Neste exemplo teremos as seguintes tabelas:

 - Livros, que terá os seguintes campos: ID, NOME, AUTOR, ANO, GENERO, EDITORA, PAGINAS e STATUS (que será um char de uma posição, podendo conter o valor “D”, de disponível ou “I”, de indisponível). Use o seguinte script:

CREATE TABLE Livros

(

      Id_Livro                           INT IDENTITY(1,1) PRIMARY KEY,

      Nome_Livro                         VARCHAR(100) NOT NULL,

      Autor_Livro                        VARCHAR(50) NOT NULL,

      Ano_Livro                          SMALLINT NOT NULL,

      Genero_Livro                       VARCHAR(50) NOT NULL,

      Editora_Livro                      VARCHAR(50) NOT NULL,

      Paginas_Livro                      SMALLINT NULL,

      Status_Livro                       CHAR(1) NOT NULL

)

 - Funcionários, que terá os seguintes campos: ID, NOME, ENDERECO, CIDADE, ESTADO, TELEFONE, CARGO, DATA_ADMISSAO e DATA_DEMISSAO (que será uma coluna que aceita valores nulos). Use o script abaixo:

CREATE TABLE Funcionarios

(

      Id_Funcionario                     INT IDENTITY(1,1) PRIMARY KEY,

      Nome_Funcionario                   VARCHAR(100) NOT NULL,

      Endereco_Funcionario               VARCHAR(50) NOT NULL,

      Cidade_Funcionario                 VARCHAR(50) NOT NULL,

      Estado_Funcionario                 VARCHAR(30) NOT NULL,

      Telefone_Funcionario               VARCHAR(20) NULL,

      Cargo_Funcionario                  VARCHAR(30) NOT NULL,

      Data_Admissao_Funcionario          SMALLDATETIME NOT NULL,

      Data_Demissao_Funcionario          SMALLDATETIME NULL

)

 - Clientes, que terá os seguintes campos: ID, NOME, ENDERECO, CIDADE, ESTADO, TELEFONE e STATUS (que será um char de uma posição, podendo conter o valor “A”, de ativo ou “I”, de inativo). Use o script a seguir:

CREATE TABLE Clientes

(

      Id_Cliente                         INT IDENTITY(1,1) PRIMARY KEY,

      Nome_Cliente                       VARCHAR(100) NOT NULL,

      Endereco_Cliente                   VARCHAR(50) NOT NULL,

      Cidade_Cliente                     VARCHAR(50) NOT NULL,

      Estado_Cliente                     VARCHAR(30) NOT NULL,

      Telefone_Cliente                   VARCHAR(20) NULL,

      Status_Cliente                     CHAR(1) NOT NULL

)

 Poderíamos criar muito mais tabelas para armazenar os autores, editoras, etc. Mais vamos nos manter nessas três tabelas.

 Use os scripts acima para criar as respectivas tabelas. Crie primeiro a de Livros para que contenha as seguintes colunas (ao final deste artigo irei disponibilizar o link para download dos scripts das tabelas criadas):

 Agora veja as colunas da tabela de Funcionários:

 Finalizando com as colunas da tabela de Clientes:

 Pronto, nosso modelo de dados está completo. Perceba que não usamos relacionamentos entre as tabelas (só usamos chaves primárias), já que o objetivo aqui é que cada tabela seja única (seguindo esta idéia mais adiante criaremos formulários únicos para estas tabelas) dando a idéia de que uma tabela seja totalmente independente da outra.

 Agora abra o Visual Studio 2008 (ou 2010) e crie um novo projeto do tipo Windows Form, dando a ele o nome de LibrarySystem (altere o nome se quiser):

 O form que aparece será nosso form Principal, que terá os botões para acessarmos os outros forms e os forms vinculados à eles. Inclua nesse form 1 controle ToolStrip, nele adicione 3 Buttons, clique com o botão direito neles e clique em Set Image para adicionar imagens aos botões. Clique com o botão direito em cima das imagens, clique em DisplayStyle e clique em Image and Text, assim irá aparecer em seu form a imagem e seu texto, definido pela propriedade Text. Neste exemplo estou usando imagens com tamanho de 48x48.

Obs:Todas as imagens usadas neste projeto foram baixadas gratuitamente deste site.

 Adicione outro ToolStrip para ficar no rodapé e um Button com o texto Sair. Após adicionar as imagens aos botões não se esqueça de alterar a propriedade ImageScaling para None, assim sua imagem terá o tamanho original no form.

 Altere as propriedades do form: MaximizeBox para False, FormBorderStyle para FixedSingle, StartPosition para CenterScreen e digite um nome na propriedade Text. Seu form deverá ficar desta forma:

 Os ID’s para os botões são os seguintes: tsbtnClientes, tsbtnFuncionarios, tsbtnLivros e tsbtnSair.

Com o form inicial criado, comece a criação dos outros. Abra a Solution Explorer, clique com o botão direito em seu projeto, clique em Add > Windows Forms e dê o nome de frmClientes. Nele, altere as seguintes propriedades: MaximizeBox para False, FormBorderStyle para FixedSingle, IsMdiContainer para True, Size para 650;500 StartPosition para CenterScreen e digite um nome na propriedade Text.

 Nos formulários criados a partir de agora usarei o conceito de MDI, assim criaremos formulários filhos que serão chamados a partir dos formulários Pais, que no nosso caso serão estes três, de Clientes, Funcionários e Livros.

Para entender melhor os conceitos sobre formulários MDI, veja este artigo.

 Em nosso formulário de Clientes, recém-criado, vamos criar 4 botões que serão responsáveis por chamar os formulários filhos de Cadastro, Atualização/Exclusão e Consulta e 1 botão para Voltar ao form principal. Então, adicione o controle ToolStrip, inclua 4 botões, adicione as imagens e altere as propriedades (da mesma forma que foi feito na parte 1 de nosso artigo). Nosso form deverá ficar dessa forma:

 Adicione também um ToolStrip no rodapé (só alterar a propriedade Dock para Bottom) para Sair do sistema. Altere a propriedade Modifiers dos 5 botões para Public, assim podemos ter acesso a estes botões de outros forms.

 O ID dos botões são esses: tsbtnAlterarExcluir, tsbtnCadastrar, tsbtnConsultar, tsbtnVoltar e tsbtnSair.

 Abra a Solution Explorer, clique com o botão direito em seu projeto, clique em Add > Windows Forms e dê o nome de frmFuncionarios. Para manter a padronização, altere neste form as mesmas propriedades que forma alteradas no frmClientes.

 Como anteriormente, crie 4 botões que serão responsáveis por chamar os formulários filhos de Cadastro, Atualização/Exclusão e Consulta e 1 botão para Voltar ao form principal. Crie também o botão para Sair do sistema. Nosso form deverá ficar igual ao anterior:

 Os ID’s dos botões são os mesmos do form anterior. Perceba que na verdade só alterei as imagens de Alterar/Excluir e de Cadastrar. Não se esqueça de alterar a propriedade Modifiers dos botões para Public Farei o mesmo no próximo form.

 Finalizando a criação dos formulários pais, adicione um novo Windows Forms dando o nome a ele de frmLivros. Altere as mesmas propriedades e insira os mesmos botões (com algumas imagens diferentes) para que o form fique como a imagem abaixo nos mostra:

 Volte ao formulário Principal para criarmos as chamadas aos formulários pais que acabamos de criar. Nele, dê dois cliques em cada um dos botões para ir à página de códigos e chamar o evento click de cada. O que faremos é somente instanciar os formulários e chamá-los pelo método ShowDialog. Dito isto, no botão Clientes insira o código abaixo:

private void tsbtnClientes_Click(object sender, EventArgs e)

        {

            frmClientes objFrmClientes = new frmClientes();

            objFrmClientes.ShowDialog();

        }

 No botão Funcionarios, faça o mesmo:

private void tsbtnFuncionarios_Click(object sender, EventArgs e)

        {

            frmFuncionarios objFrmFuncionarios = new frmFuncionarios();

            objFrmFuncionarios.ShowDialog();

        }

 E no botão Livros:

private void tsbtnLivros_Click(object sender, EventArgs e)

        {

            frmLivros objFrmLivros = new frmLivros();

            objFrmLivros.ShowDialog();

        }

 Dê dois cliques também no botão Sair, faça uma verificação se o usuário realmente deseja sair e chame o método Application.Exit(), que irá fechar nosso sistema:

private void tsbtnSair_Click(object sender, EventArgs e)

        {

            if (MessageBox.Show("Você tem certeza que deseja sair do sistema?", "Mensagem do Sistema",

                MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

            {

                Application.Exit();

            }

        }

 Faça essa mesma chamada do botão Sair nos formulários pais.

 No botão Voltar apenas feche seu formulário que o form principal aparecerá novamente:

private void tsbtnVoltar_Click(object sender, EventArgs e)

        {

            this.Close();

        }

 Para quem se interessar em baixar o script das tabelas, baixe neste post

 Assim finalizo o artigo. Na próxima parte vamos criar os formulários filhos que compõem nosso projeto, para partirmos para a codificação das operações de Inclusão, Deleção, Consulta e Atualização dos dados. Aguarde!

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

 Wellington Balbo de Camargo

 wellingtonbalbo@gmail.com