C# - Cadastro Básico com TableAdapter usando os recursos RAD - II


Continuando a primeira parte do artigo vamos criar agora o formulário de login da aplicação. Ele deverá ser exibido tão logo a tela de apresentação seja encerrada.

Esta é a tela de apresentação:

No menu Project clique em Add Windows Form e altere o nome do formulário para frmLogin.cs clicando em Add;

Abra a janela Data Sources e arraste o data source Usuarios para o formulário;

Vamos excluir os objetos usuariosBindingNavigator , os TextBox para Id, login, email e senha conforme mostrado abaixo:

Em seguida a partir da ToolBox inclua os controles : PictureBox, Button no formulário conforme o leiaute da figura a seguir:

No formulário acima incluímos uma imagem na PictureBox na sua propriedade Image. A propriedade SizeMode deve ser igual a StretchImage;

E como vamos exibir este formulário após o encerramento da tela de apresentação ?

Teremos que alterar o código do Program.cs de forma que o formulário de frmLogin() seja executado quando a aplicação iniciar.

using System;
using System.Windows.Forms;

namespace Cadastro_Basico
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.DoEvents();
            Application.Run(new frmLogin());
        }
    }
}

E a tela de apresentação ????

Deixa eu explicar ....

Para mostrar a tela de apresentação eu defini o código conforme mostrado na parte 1 do artigo mas como eu quero exibir o formulário de login após a apresentação vou fazer o seguinte:

1- Eu inicio a aplicação chamando o formulário de login
2- No seu evento Load eu crio uma instância do formulário frmSplash() para exibir o formulário frmSplash()
3- Após executar o código no formulário frmSplash() eu libero o recuso usado e escondo o formulário de apresentação, assim o formulário de login surge triunfante...

Obs: Existem outras maneiras de obter o mesmo resultado mas creio que essa seja uma das mais fáceis de entender e implementar.

Vejamos o código para isso:

1- Evento Load do formuláro frmLogin:

        private void frmLogin_Load(object sender, EventArgs e)
        {
            frmSplash f1 = new frmSplash();
            //// Mostramos o formulario na forma modal.
            f1.ShowDialog(this);
            f1.Dispose();
        }

É tudo isso que precisamos para obter o resultado esperado.

Temos dois botões no formulário de Login : Sair e OK.

Encerrando a aplicação

O botão Sair encerra a aplicação e o código colocado no evento Click deste botão é bem simples:

  private void btnSair_Click(object sender, EventArgs e)
  {
       Application.Exit();
 }

Este método pára todos os loops de mensagem em execução em todos os tópicos e fecha todas as janelas da aplicação.(Este método não força o aplicativo a sair. )

Autenticando o Usuário

No botão OK temos que efetuar a validação do usuário conferindo seu nome e senha.

Para verificar a senha e o nome do usuário temos que consultar o banco de dados usando o DataSet CadastroDataSet criado.

Para fazer isso temos que criar uma nova consulta no banco de dados para saber se o nome e a senha do usuário existem no banco de dados.

Clique duas vezes no em CadastroDataSet para exibir a janela contendo o DataSet:

Clique com o botão direito sobre UsuariosTableAdapter e a seguir clique em Add Query...

Marque a opção Use SQL Statements (ela já vem marcada) e clique em Next>;

Marque a opção SELECT which returns rows (também ja vem marcada) pois queremos retornar um resultado obtido e clique em Next>;

Defina a seguinte consulta SQL : SELECT id, login, senha FROM dbo.Usuarios WHERE ( login = @login AND senha= @senha)

Clique em Next>;

Informe o nome para a consulta criada conforme a figura abaixo:

Clique em Finish;

Pronto já criamos a consulta SQL para autenticar o usuário no banco de dados. Vamos ver como podemos usar a consulta no formulário de login.

Defina no formulário os seguintes namespaces:

using System;
using System.Windows.Forms;
using Cadastro_Basico.CadastroDataSetTableAdapters;

No evento Click do botão OK vamos incluir o código abaixo:

       private void btnOK_Click(object sender, EventArgs e)
        {
            int resultado = usuariosTableAdapter.FillByUsuarioLogin(cadastroDataSet.Usuarios, txtLogin.Text, txtSenha.Text);

            if (resultado == 1)
            {
                frmCadastro fc = new frmCadastro();
                this.Hide();
                fc.ShowDialog();
                fc.Dispose();
            }
            else
            {
                MessageBox.Show("Usuário/Senha inválido(s) !", "Erro Login", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

Vamos entender...

A linha de código:

int resultado = usuariosTableAdapter.FillByUsuarioLogin(cadastroDataSet.Usuarios, txtLogin.Text, txtSenha.Text);

Usa a consulta FillByUsuarioLogin que criamos no TableAdapter usuariosTableAdapter passando o DataSet e os valores para login e senha informados pelo usuário;

O resultado obtido será armazenada na variável resultado.

A seguir verificamos qual foi o resultado:

if (resultado == 1)
{
   frmCadastro fc = new frmCadastro();
   this.Hide();
   fc.ShowDialog();
   fc.Dispose();
}
else
{
   MessageBox.Show("Usuário/Senha inválido(s) !", "Erro Login", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Se o resultado for igual a 1 significa que foi encontrado uma linha na tabela cujo nome e senha coincidem com o informado pelo usuário no formulário:

Neste caso criamos uma instância do formulário de cadastro frmCadastro, escondemos o formulário de login e exibimos o formulário principal da aplicação que é o formulário de cadastro; Se o resultado for diferente de 1 então exibimos uma mensagem ao usuário.

Criando o formulário de Cadastro

No menu Project clique em Add Windows Forms e informe o nome frmCadastro.cs.

A seguir a partir da ToolBox inclua um controle TabControl no formulário e inclua duas TabPages :

Ative a tabPage1 e inclua nela um controle Panel.

Agora a partir da janela Data Source defina o dataset Alunos como Details e altere o modo de exibição dos campos cursoid e sexo para Combobox;

A seguir arraste o DataSet para o interior do Panel na tabPage1(Cadastrar Alunos); Inclua também um controle PictureBox e um controle Button;

A seguir arraste o dataset Cursos a partir da janela Data Sources para a combobox relativa aos cursos no formulário;

Na janela de propriedades selecione a propriedade Items da combobox para sexo e defina os valores : M e F;

De forma que o leiaute da tabPage1 do formulário frmCadastro fique conforme a figura abaixo:

Ative a tabPage2 e na janela Data Sources altere o modo de exibição do dataset alunos para DataGridView e arraste-o para o interior da tabPage2(Consultar Alunos):

A seguir inclua um controle Label, um controle TextBox e um controle Button definindo o leiaute conforme a figura a seguir:

Dessa forma definimos a interface do formulário frmCadastro onde poderemos cadastrar , alterar e modificar os dados dos alunos bem como imprimir um relatórios das informações.

Aguarde a continuação onde definiremos o código do formulário frmCadastro para manutenção e consulta dos dados.

Acompanhe a terceira parte aqui: C# - Cadastro Básico com TableAdapter usando os recursos RAD - III

1Pedro 2:11 Amados, exorto-vos, como a peregrinos e forasteiros, que vos abstenhais das concupiscências da carne, as quais combatem contra a alma;
1Pedro 2:12
tendo o vosso procedimento correto entre os gentios, para que naquilo em que falam mal de vós, como de malfeitores, observando as vossas boas obras, glorifiquem a Deus no dia da visitação.

Referências:


José Carlos Macoratti