Академический Документы
Профессиональный Документы
Культура Документы
Unidade III
Apresentamos o desenvolvimento estruturado em multicamadas, ou seja, segregar todo o código
em camadas como: interface, persistência e dados. Assim, são de grande importância o conhecimento
e a apresentação desse modelo, que ganha força no cenário mundial de desenvolvimento de software.
Vamos codificar o botão. Para isso iremos clicar duas vezes no botão Sair no modo Design para
sermos direcionados para o evento desse botão.
92
Programação Orientada a Objetos II
Para efetuar o código iremos utilizar o método nativo Close(), que ao ser acionado irá encerrar a aplicação.
Saiba mais
93
Unidade III
Ao acionar o botão Sair, será direcionado para o modo de codificação no Microsoft Visual Studio:
Podemos também incluir um botão Limpar, que será acionado logo após o cálculo ser efetuado, ou seja,
ao acioná‑lo, todas as caixas de texto serão inicializadas. Para isso, deve‑se proceder da seguinte maneira:
95
Unidade III
• Após essa ação, o cursor será “setado” para o componente txtDigitePrimeiroNumero por meio do
método nativo Focus().
O componente Resultado pode ser eliminado do formulário, e o resultado do cálculo pode ser
apresentado dentro da caixa de texto. Para isso iremos comentar (utilizando “//”) o trecho de código
selecionado e efetuar o seguinte ajuste:
96
Programação Orientada a Objetos II
97
Unidade III
98
Programação Orientada a Objetos II
99
Unidade III
Para o botão Sair podemos implementar uma regra de “permanência na tela”. No cenário atual, quando
o botão Sair é acionado, a aplicação é encerrada. A implementação sugerida será um questionamento
para o usuário que está interagindo com a aplicação, se ele deseja sair ou não dela. Para isso o seguinte
código deverá ser implementado no evento click do botão Sair:
100
Programação Orientada a Objetos II
• Dentro do método nativo MessageBox.Show serão definidos: mensagem que será apresentada
na caixa de mensagem, título da caixa de mensagem, botões que serão apresentados na caixa de
mensagem (Yes/No – Sim/Não) e ícone que será apresentado na caixa de mensagem.
• O retorno do clique nos botões Yes/No será atribuído à variável result, em que ela receberá o
clique do botão No (por meio da classe DialogResult).
101
Unidade III
• Se o botão Sim for acionado, deverá ser processado o Método Close() para efetuar o encerramento
da aplicação.
Para a caixa de texto Resultado podemos pensar em mais um tratamento de melhoria. No cenário
atual, podemos efetuar o cálculo, porém, a caixa de texto Resultado fica “editável”, ou seja, podemos
manipular o valor a qualquer momento.
Para que uma “trava” possa ser colocada na caixa de texto, podemos adotar a propriedade Enabled
(Ativar/Desativar) na propriedade text.
Saiba mais
102
Programação Orientada a Objetos II
103
Unidade III
Podemos notar que a caixa de texto Resultado fica com a cor cinza e desabilitada, possibilitando a
carga da caixa e impossibilitando a edição dela.
104
Programação Orientada a Objetos II
105
Unidade III
Podemos, em vez de colocar uma “trava” na caixa de texto, ocultá‑la e somente apresentar a caixa
quando os botões de soma, multiplicação, divisão ou subtração forem acionados. Para isso iremos utilizar
a propriedade Visible, que possibilita ocultar os componentes selecionados. Essa propriedade trabalha da
mesma maneira que a propriedade Enabled, ou seja, com tipo booleano (true/false – verdadeiro/falso).
Saiba mais
106
Programação Orientada a Objetos II
107
Unidade III
Percebe‑se que os componentes lblResultado e txtResultado não foram apresentados, mas como
será apresentado o resultado da ação matemática?
Quando o botão Soma for acionado, a propriedade Visible dos componentes lblResultado e
txtResultado será alterada para true (verdadeiro), possibilitando a visualização do resultado do cálculo.
108
Programação Orientada a Objetos II
109
Unidade III
Quando o botão “Limpar” for acionado, a aplicação deverá voltar para o seu estado de origem, ou
seja, aplicação sem os componentes lblResultado e txtResultado visíveis para o usuário.
110
Programação Orientada a Objetos II
Para uma melhor disposição das informações no formulário, iremos adicionar mais um componente,
chamado groupBox, que possibilita uma melhor apresentação das informações dentro do formulário.
Esse componente encontra‑se em ToolBox Containers GroupBox.
111
Unidade III
• Name: grpEntradaValores.
Para essa ação iremos clicar com o botão direito no componente groupBox e selecionar o item Properties.
112
Programação Orientada a Objetos II
Após essa ação iremos selecionar os seguintes componentes segurando a tecla Ctrl do teclado e
clicando nos componentes:
• lblDigitePrimeiroNumero.
• txtDigiteSegundoNumero.
• lblDigiteSegundoNumero.
• txtDigiteSegundoNumero.
Após a seleção efetuada iremos utilizar a combinação de teclas Ctrl + X, que irá possibilitar o recorte
dos componentes:
113
Unidade III
Em seguida selecionaremos o groupBox Entrada de Valores e iremos efetuar, dentro dele, a combinação
de teclas Ctrl + V, que efetuará a inclusão dos componentes dentro do groupBox.
114
Programação Orientada a Objetos II
Figura 151 – GroupBox Operações Matemáticas com os componentes soma, subtração, divisão e multiplicação
115
Unidade III
Saiba mais
116
Programação Orientada a Objetos II
Saiba mais
117
Unidade III
Podemos encostar o cursor do mouse em volta do formulário, mas não é possível efetuar o
redimensionamento, ou seja, a apresentação do formulário em modo de execução será mantida.
Outra alteração a ser efetuada é ocultar os itens Minimizar, Maximizar e Fechar. Para isso será
alterada a propriedade ControlBox. Essa propriedade, como algumas já vistas neste livro‑texto (Enabled
e Visible), trabalha com o tipo booleno (true/false – verdadeiro/falso).
118
Programação Orientada a Objetos II
Podemos notar que os botões Minimizar, Maximizar e Fechar foram retirados do formulário.
Lembrete
A camada Modelo é responsável por efetuar um espelhamento das tabelas que são construídas no
banco de dados. Por facilitar o tráfego de informações pelas camadas, ela é de extrema importância para
a execução. Incluindo um novo projeto, vamos obter a seguinte visualização:
119
Unidade III
Lembrete
120
Programação Orientada a Objetos II
Observação
Observação
Após a construção da tabela Aluno (tblAluno), a classe mdlAluno terá o seguinte código:
121
Unidade III
Podemos perceber que todos os atributos contidos na tabela tblAluno estão inseridos na classe
mdlAluno; para que possamos entender melhor, iniciaremos a codificação do evento click Inserir:
Para iniciarmos a codificação deste item, vamos precisar definir alguns passos:
122
Programação Orientada a Objetos II
123
Unidade III
Todas as propriedades contidas na classe mdlAluno ficaram visíveis no modo de codificação. Para
que o código se torne visível, deverá ser criada uma instância de objeto.
Saiba mais
124
Programação Orientada a Objetos II
Com o objeto _mdlAluno instanciado, todos os atributos poderão ser visualizados dentro do evento,
assim efetuando a herança de todos os atributos.
Saiba mais
Agora será criado o projeto Controle, responsável por receber os parâmetros do projeto view
(CadastroAluno) e efetuar as devidas ações no banco de dados por meio de métodos inseridos na classe.
125
Unidade III
126
Programação Orientada a Objetos II
127
Unidade III
Observação
128
Programação Orientada a Objetos II
Após esse passo será apresentado todo o fluxo de codificação para a inclusão do registro do aluno
na base de dados.
Cada método trabalha de maneira independente, sendo utilizado quando solicitado. Com o aporte
da análise e conceitos definidos de método, identificou‑se a necessidade de se criar o Método Cadastrar.
129
Unidade III
Esse método será responsável por capturar os valores informados na tela e inseridos na base de dados,
conforme código a seguir:
reader = cmd.ExecuteReader();
//
//interage com a tabela retornada
//
while (reader.Read())
{
return true;
}
fecharConexao(conn);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//
// Garante que a conexão será fechada mesmo que ocorra algum erro.
// Não existe problema em fechar uma conexão duas vezes.
// O problema está em abrir uma conexão duas vezes.
//
if (conn != null)
{
conn.Close();
}
}
return true;
}
130
Programação Orientada a Objetos II
Esse método tem por finalidade prover informações de alocação do banco de dados no desktop ou
em um servidor.
1. Efetuar a descrição de string de conexão que informa dados do banco que será acessado.
4. Abrir a conexão.
Método ObterConexao
Esse método será responsável por validar a conexão e, ao final do procedimento de execução,
fechá‑la. Toda conexão deve ser encerrada ao final do método.
131
Unidade III
Após a inclusão de valores nas caixas de texto Nome, RG e CPF, acionaremos o botão Incluir:
132
Programação Orientada a Objetos II
Para verificarmos se o registro foi incluído com sucesso iremos até a aba Server Explorer:
• Para adicionarmos à nossa tabela precisamos clicar com o botão direito em Data Connections
Add Connection
133
Unidade III
Vamos localizar o banco de dados criado utilizando o Access e digitar em Password a senha Admin
(Senha default para o acesso). Após o preenchimento desses campos vamos acionar o botão Test Connection.
134
Programação Orientada a Objetos II
Figura 183 – Acionar com o botão direito a base aluno.accdb e clicar no item Properties
Figura 184 – A propriedade ConnectionString contém o endereço do banco de dados que será utilizado no Método ObterConexao
135
Unidade III
Figura 185 – Localizar a tabela tblAluno e, com o botão direito acionado, ir até o item New Query
136
Programação Orientada a Objetos II
• Select * from tblAluno. Selecionar a query digitada e acionar a combinação de botões Crtl + R e
teremos o seguinte resultado:
Para os itens de alteração, exclusão e consulta, aplica‑se o mesmo procedimento, tendo como
paralelos os seus respectivos métodos: Update, Delete e Select.
137
Unidade III
Método responsável por efetuar a exclusão de valores na tabela alocada em uma base de dados. Para
que a integridade da alteração seja atendida, vale ressaltar a importância de se informar, na cláusula
Where, qual registro deverá ser alterado.
reader = cmd.ExecuteReader();
//
//interage com a tabela retornada
//
while (reader.Read())
{
return true;
}
fecharConexao(conn);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//
// Garante que a conexão será fechada mesmo que ocorra algum erro.
// Não existe problema em fechar uma conexão duas vezes.
// O problema está em abrir uma conexão duas vezes.
//
if (conn != null)
{
conn.Close();
}
}
return true;
}
138
Programação Orientada a Objetos II
Método responsável por efetuar a exclusão de valores na tabela alocada em uma base de dados. Para
que a integridade da exclusão seja atendida, vale ressaltar a importância de se informar, na cláusula
Where, qual registro deverá ser excluído.
reader = cmd.ExecuteReader();
//
//interage com a tabela retornada
//
while (reader.Read())
{
return true;
}
fecharConexao(conn);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//
// Garante que a conexão será fechada mesmo que ocorra algum
erro.
// Não existe problema em fechar uma conexão duas vezes.
// O problema está em abrir uma conexão duas vezes.
//
if (conn != null)
{
conn.Close();
}
}
return true;
}
139
Unidade III
Método responsável por efetuar a consulta de valores na tabela alocada em uma base de dados. Para
que a integridade da consulta seja atendida, vale ressaltar a importância de se informar, na cláusula
Where, qual registro deverá ser consultado.
140
Programação Orientada a Objetos II
//
if (conn != null)
{
conn.Close();
}
}
}
Resumo
tbUsuario
id – int – PK
loginUsuario – varchar(20)
senha – varchar(8)
Nome – varchar(30)
141
Unidade III
Classe ctlUsuario
142
Programação Orientada a Objetos II
usuarioDAL.cs
143