Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tcn

[Resolvido] Fechando Form --- Chamando Sobre

Recommended Posts

Bom Dia

 

Pessoal estou com uma pequena dúvida, tenho Form de Login em C#

 

que preciso fecha-lo após login, porem Não estou conseguindo, como faz para fechar após abrir um novo form?

 

 

estou usando esse código

 

 

 private void btn_logar_Click(object sender, EventArgs e)
        {
            string nome;
            string senha;
            int i;

            nome = "1";
            senha = "1";

        

            if (txt_nome.Text == " " && txt_senha.Text == " ")

            {
                MessageBox.Show("Erro! Login ou Senha Invalido", "Erro!!");
            }

            nome = Convert.ToString(txt_nome.Text);
            senha = Convert.ToString(txt_senha.Text);


          
            if (txt_senha.Text != "adm12345" && txt_nome.Text != "Administrador")
            {
                MessageBox.Show("Erro! Login ou Senha Invalido", "Erro!!");
            }

            else
            {
                         
                this.Hide();
                FrmLogin mainForm = new FrmLogin();
                this.Close();

                frmprincipal novoform = new frmprincipal();
                novoform.Show();

             }

porem nao está abrindo o segundo form,

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então meu caro, sou novato em C# e vou ser sincero, não entendi corretamente seu código deste tópico

 

 

no caso você criou sua Acesso como Showdialog, eu não fiz isso, como proceder para que FrmLogins e torne um Showdialog?

 

Grato pela Ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tcn, é o seguinte.

Eu creio que você deva estar utilizando C# Windows Form e não WEB.

Bem, nele você tem uma classe chamada Program.CS, dentro dela você irá colocar este codigo:

 static class Program
 {
 [STAThread]
 static void Main()
 {
 Application.EnableVisualStyles();
 Application.SetCompatibleTextRenderingDefault(false);

 Negocios.clsUsuario objUsuario = new Negocios.clsUsuario(); //Este é minha Entidade USUARIO, dentro dela tenho meus GETS e SETS
 frmLogin login = new frmLogin(objUsuario); // Abro o formulario login, onde irei ter o TXTUsuario e o TXTSenha + o botão logar

 if (login.ShowDialog() == DialogResult.OK) // Se o resultado que retornar do formulario for correto então login.ShowDialog() será 
DialogResult.OK
 {
 Application.Run(new frmPrincipal(objUsuario)); //Então você vai abrir sua pagina principal.
 }
 }
 }

Veja como irá ficar a pagina frmLogin:

 private void cmdLogar_Click(object sender, EventArgs e)
 {
 VerificaUsuario(txtUsuario.Text, txtSenha.Text);
 }

 private void VerificaUsuario(string usuario, string senha) 
 {
 int result;
 BLL.clsUsuario objBllUsuario = new BLL.clsUsuario();

 objEntUsuario.Usuario = usuario;
 objEntUsuario.Senha = senha;

 result = objBllUsuario.VerificaUsuario(objEntUsuario);//Método que irá verificar no Banco se o Usuario e Senha Existem.

 if (result == 1)//Se o usuario e Senha estiverem OK ele irá entrar aqui.
 {
 this.DialogResult = DialogResult.OK;
 }
 else
 {
 if(result == 2)
 {
 MessageBox.Show("Usuario ou Senha inválido", "", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
 }
 else if (result == 3)
 {
 this.DialogResult = DialogResult.Abort;
 }
 else
 {
 MessageBox.Show("Usuario ou Senha não foram preenchidos corretamente", "", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
 }
 }

 }

Espero que tenha entendido.

 

Caso não souber o que é uma entidade, então vai um exemplo:

 

 public class clsUsuario
 {
 private string usuario;
 private string senha;
 
 public string Usuario
 {
 get { return usuario; }
 set { usuario = value; }
 }

 public string Senha
 {
 get { return senha; }
 set { senha = value; }
 }
 }

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só me tire um dúvida

 

objEntUsuario <<< isso aqui ele acusa não esta sendo mencionando no código.

 

BBL <<< não mencionada no código

 

 

 

Como eu faço amigo neste caso?

 

grato pela Ajuda, ajudou a entender bastante o código,

 

Muito Obrigado

 

Edditando:

 

lendo, isso seria no caso apenas para conexão com banco de dados, no caso posso comentar essa parte e colocar Hard code mesmo não eh?

 

Ah Sim,

 

consegui funcionar fazer pegar assim o código

 

   private void btn_logar_Click(object sender, EventArgs e)
        {
            string nome;
            string senha;
            int i;

            //nome = "Administrador";
           // senha = "adm12345";

        

            if (txt_nome.Text == " " && txt_senha.Text == " ")

            {
                MessageBox.Show("Erro! Login ou Senha Invalido", "Erro!!");
            }

            nome = Convert.ToString(txt_nome.Text);
            senha = Convert.ToString(txt_senha.Text);


          
            if (txt_senha.Text != "adm12345" && txt_nome.Text != "Administrador")
            {
                MessageBox.Show("Erro! Login ou Senha Invalido", "Erro!!");
            }

            else
            {
                         
                this.Hide();
                FrmLogin mainForm = new FrmLogin();
                this.Hide();
                frmprincipal novoform = new frmprincipal();
                novoform.Show();

             }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tcn, objEntUsurio seria a instancia do meu objeto.

 

No código anterior eu falei dos Gets e Sets e dei um exemplo, crei a classe public class clsUsuario, esta classe até o momento não esta sendo utilizada.

para eu utilizar eu faço o seguinte:

clsUsuario nome que eu quiser, no exemplo foi objEntUsurio = new clsUsuario();

A partir desse ponto eu posso estar utilizando as propriedades e métodos deste objeto.

ex:

 

clsUsuario usuario = new clsUsuario();

txtUsuario.text = usuario.Usuario();
txtSenha.text = usuario.Senha();

O BLL é Bussiner Layer, ele é a camada que você faz suas validações e chama a camada DAO, a camada DAO faz comunicação com o banco de dados. Ou seja, aqui estamos vendo Orientação Objeto 3 camadas.

 

Se estiver dificil e você não necessitar disso neste momento, sugiro que faça tudo no mesmo form, mas eu sugiro tb que aprenda Orientação a Objetos, pq é certo.

 

Vou fazer um exemplo de como irá ficar seu código sem OOP(Programação Orientada a Objetos) e com OOP.

 

Sem, na tela de login:

 private void cmdLogar_Click(object sender, EventArgs e)
 {
  if(VerificaUsuario(txtUsuario.Text, txtSenha.Text) == 1)
 { 
 this.DialogResult = DialogResult.OK;
 }
 }

 private void VerificaUsuario(string Usuario, string Senha)
 {
 return VerificaBLL;
 }

 private int VerificaBLL(string Usuario, string Senha)
 {
 if(Usuario != string.empty && Senha != string.Empty)
 {
 int result;
 result = VerificaDAO(Usuario, Senha);
 }
 }

 private int VerificaDAO(String Usuario, String Senha)
 {
 //aqui é onde você irá se comunicar com o banco de dados.
 // Faça aqui sua string de conexão

 //Faça os parametros para fazer uma consulta SQL e retorna o resultado.
 //Vamos supor que você utilizou um SQLDataReader;
 SqlCommand commad = new SqlCommand("select ou procedure", string de conexao);
 command.CommandType = CommandType.Text //ou .StoredProcedure depende do q você usará, eu acho melhor você usar procedure.
 SqlDataReader dr = command.ExecuteReader();// Ele irá executar o comando que foi feito acima.
 if(dr.HasRows)//Verifica se retornou linhas do SQL executado.
 {
 return 1;
 }
 else
 {
 return 0;
 }
 }

Com, na tela de Login:

public class Login
{
 private void cmdLogar_Click(object sender, EventArgs e)
 {
  if(VerificaUsuario(txtUsuario.Text, txtSenha.Text) == 1)
 { 
 this.DialogResult = DialogResult.OK;
 }
 }

 private void VerificaUsuario(string Usuario, string Senha)
 {
 UsuarioBll usuarioBll = new UsuarioBll(); //Fiz a instancia da classe, ou seja, criei um objeto. 
 return usuarioBll.VerificaBLL;
 }
}

public class UsuarioBll
{
 public int VerificaBLL(string Usuario, string Senha)
 {
 if(Usuario != string.empty && Senha != string.Empty)
 {
 UsuarioDAO usuarioDAO = new UsuarioDAO();
 int result;
 result = usuarioDAO.VerificaDAO(Usuario, Senha);
 }
 }
}

public class UsuarioDAO
{
 public int VerificaDAO(String Usuario, String Senha)
 {
 //aqui é onde você irá se comunicar com o banco de dados.
 // Faça aqui sua string de conexão

 //Faça os parametros para fazer uma consulta SQL e retorna o resultado.
 //Vamos supor que você utilizou um SQLDataReader;
 SqlCommand commad = new SqlCommand("select ou procedure", string de conexao);
 command.CommandType = CommandType.Text //ou .StoredProcedure depende do q você usará, eu acho melhor você usar procedure.
 SqlDataReader dr = command.ExecuteReader();// Ele irá executar o comando que foi feito acima.
 if(dr.HasRows)//Verifica se retornou linhas do SQL executado.
 {
 return 1;
 }
 else
 {
 return 0;
 }
 }
}

 

Bom espero ter conseguido explicar melhor agora.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, Sim cara

 

perfietamente, Obrigado Pela Ajuda Evandro Sousa,

 

muito Obrigado pela ajuda, ajudou muito

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.