none
Passar o conteúdo da caixa de texto "nome_login" do formulário login, para ser usado no Formulário Cliente no botão salvar RRS feed

  • Pergunta

  • Boa Tarde pessoal,

    Gostaria de uma ajuda, como passar através da variável que recebe o valor  nome_login do "FormLogin" (Formulário de Login), quero usá-la na caixa de texto no formulário de clientes.

    Explicando melhor:  o usuário ao se logar, será passado seu nome (nome_login do FormLogin) para a caixa de texto no FormularioClientes no botão salvar. 

    Assim toda alteração e edição, será gravada por quem fez esta última alteração/edição, ou seja quem se logou.

    Como transfiro o nome do usuario do login para o formulário Clientes (na mesma variável ou em outra) para salvar na caixa de texto do "Clientes"

    Obrigado pela ajuda.

    domingo, 5 de agosto de 2018 16:42

Respostas

  • oi amigo!

    passei dias sem estar na net, mas já verifiquei teu código e vê as melhoria que fiz:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;


    namespace Ultimo_ID
    {
        public partial class Login : Form
        {

             String usuario, pwd; 
            SqlConnection SqlConn = null;
            public String StrConn = @"Data Source=DESKTOP-3O98051;Initial Catalog=UltimoID;Integrated Security=True";
            public String StrSql = String.Empty;
            public bool logado = false;
            public String usuario = string.Empty;



            public Login()
            {
                InitializeComponent();
               
            }


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

            public static class DadosGerais
            {
                public static string Loginusuario;

            }
             public void Logar()
             {
                 SqlConn = new SqlConnection(StrConn);
                
                 try
                 {
                     usuario = txt_usuario.Text;
                     pwd = txt_senha.Text;

                      DadosGerais.Loginusuario = usuario;
                    // usuario = usu;
                    // pgto = txt_pgto.Text;

                     StrSql = "SELECT COUNT (Id_Usuario) FROM Usuario WHERE Nome_Usuario = @usuario AND Senha_Usuario = @senha";

                     SqlCommand cmd = new SqlCommand(StrSql, SqlConn);

                     cmd.Parameters.Add("@usuario",SqlDbType.VarChar).Value = usuario;
                     cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = pwd;
                    
                     
              //     cmd.Parameters.Add("@senhapgto", SqlDbType.VarChar).Value = pgto;

                     SqlConn.Open();

                     int v = (int)cmd.ExecuteScalar();

                     if (v > 0)
                     {
                         logado = true;
                         this.Dispose();
                     }
                     else
                     {
                         MessageBox.Show("Usuário ou Senha não estão Cadastrados!", "Erro!");
                         logado = false;
                     }

                 }
                 catch
                 {
                     MessageBox.Show("Falha na Conexão de Acesso ao Banco de Dados! ", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }

             }

             private void btn_efetuarlogin_Click(object sender, EventArgs e)
             {
                 Logar();

             }

             private void txt_senha_KeyDown(object sender, KeyEventArgs e)
             {
                 if (e.KeyCode == Keys.Enter)
                 {
                     Logar();
                 }
             }

       }
     }  

    Melhorei só a visibilidade das variáveis e a chamada da classe estática dentro do método Logar();

    espero que te ajudou.

    • Marcado como Resposta F.oliveirarocha segunda-feira, 13 de agosto de 2018 12:34
    domingo, 12 de agosto de 2018 06:29

Todas as Respostas

  • Olá amigo!

    Para passar um valor para outro formulário como no teu caso o formulário Clientes, se ao clicar no botão ele chama diretamente o formulário Clientes, você pode fazer o seguinte:

    Primeiro cria uma variável Public no form Clientes exemplo public string nomeUsuario, e ao chamar o form Clientes no botão do login pode fazer o seguinte:

    Clientes cliente = new Clientes;

    cliente.nomeUsuario = nome_Login; //ou txtNome.text

    cliente.Show();

    Espero que te serviu de ajuda.

    domingo, 5 de agosto de 2018 17:00
  • Timóteo, boa noite, 

    obrigado pela sua atenção.

    Não se trata de chamar o Formulário Cliente no botão de login.

    No formulário Login, ao inserir os dados de Nome (Nome do usuário) e Senha, para logar,  eu quero pegar o nome do usuário  deste formulário Login (nome_login) e usar nos formulários que ele acessar ao Salvar (Clientes, Fornecedor, etc). 

    Ao fazer o Login, o usuário acessará o Sistema para fazer algo, inserir ou alterar clientes etc, gostaria que salvasse 

    o nome deste usuário e a data no formulário que ele acessou, registrando quem fez a edição ou alteração. A data eu já resolvi. O usuário não. Já fiz n tentativas.

    Aguardo sua ajuda novamente.

    Obrigado.

    terça-feira, 7 de agosto de 2018 01:37
  • Ok percebi!

    Neste caso te sugiro criar uma classe static  com um campo public static que vai receber o nome do usuário logado e como a classe static é visível em todo programa você consegue pegar o nome do usuário logado em qualquer formulário. Tipo assim:

    

    public static class DadosGeral
        {
            public static string nomeUsuario;
        }

    no teu formulário de login no código do teu botão acrescenta isto:

       DadosGeral.nomeUsuario = nome_login;

    feito isto pronto! em todos teus formulário será visível o campo  nomeUsuario da classe static com valor passado basta atribuir a qualquer variável este valor já está ex: frmCliente.text = DadosGeral.nomeUsuario;.

    Espero que isso te ajudou.


    • Editado Timóteo Nkawa terça-feira, 7 de agosto de 2018 10:31 Correção
    terça-feira, 7 de agosto de 2018 08:09
  • Timóteo, boa tarde,

    Vc entendeu. É isso mesmo que eu necessito.

    Fiz o código, porém a variável não está recebendo o valor da caixa de texto.

    Continuo salvando sem o nome do usuário. 

    Não sei o que deve ser. 

    Obrigado pela ajuda.

    Att.

    Flávio Rocha.

    sábado, 11 de agosto de 2018 16:33
  • Timóteo, boa tarde,

    Vai abaixo o código do meu formulário de Login.

    Veja se consegue visualizar o problema. A variável do usuário continua vazia e não consigo passar o nome do login, 

    para ela. Veja abaixo. Abraços.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;


    namespace Ultimo_ID
    {
        public partial class Login : Form
        {
            SqlConnection SqlConn = null;
            public String StrConn = @"Data Source=DESKTOP-3O98051;Initial Catalog=UltimoID;Integrated Security=True";
            public String StrSql = String.Empty;
            public bool logado = false;
            public String usuario = string.Empty;



            public Login()
            {
                InitializeComponent();
               
            }


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

            public static class DadosGerais
            {
                public static string Loginusuario;

            }
             public void Logar()
             {
                 SqlConn = new SqlConnection(StrConn);
                 String usuario, pwd; 
                 
                 try
                 {
                     usuario = txt_usuario.Text;
                     pwd = txt_senha.Text;
                    // usuario = usu;
                    // pgto = txt_pgto.Text;

                     StrSql = "SELECT COUNT (Id_Usuario) FROM Usuario WHERE Nome_Usuario = @usuario AND Senha_Usuario = @senha";

                     SqlCommand cmd = new SqlCommand(StrSql, SqlConn);

                     cmd.Parameters.Add("@usuario",SqlDbType.VarChar).Value = usuario;
                     cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = pwd;
                    
                     
              //     cmd.Parameters.Add("@senhapgto", SqlDbType.VarChar).Value = pgto;

                     SqlConn.Open();

                     int v = (int)cmd.ExecuteScalar();

                     if (v > 0)
                     {
                         logado = true;
                         this.Dispose();
                     }
                     else
                     {
                         MessageBox.Show("Usuário ou Senha não estão Cadastrados!", "Erro!");
                         logado = false;
                     }

                 }
                 catch
                 {
                     MessageBox.Show("Falha na Conexão de Acesso ao Banco de Dados! ", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }

             }

             private void btn_efetuarlogin_Click(object sender, EventArgs e)
             {
                 Logar();
                 DadosGerais.Loginusuario = usuario;

             }

             private void txt_senha_KeyDown(object sender, KeyEventArgs e)
             {
                 if (e.KeyCode == Keys.Enter)
                 {
                     Logar();
                 }
             }

       }
     }  



            


    sábado, 11 de agosto de 2018 17:42
  • oi amigo!

    passei dias sem estar na net, mas já verifiquei teu código e vê as melhoria que fiz:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;


    namespace Ultimo_ID
    {
        public partial class Login : Form
        {

             String usuario, pwd; 
            SqlConnection SqlConn = null;
            public String StrConn = @"Data Source=DESKTOP-3O98051;Initial Catalog=UltimoID;Integrated Security=True";
            public String StrSql = String.Empty;
            public bool logado = false;
            public String usuario = string.Empty;



            public Login()
            {
                InitializeComponent();
               
            }


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

            public static class DadosGerais
            {
                public static string Loginusuario;

            }
             public void Logar()
             {
                 SqlConn = new SqlConnection(StrConn);
                
                 try
                 {
                     usuario = txt_usuario.Text;
                     pwd = txt_senha.Text;

                      DadosGerais.Loginusuario = usuario;
                    // usuario = usu;
                    // pgto = txt_pgto.Text;

                     StrSql = "SELECT COUNT (Id_Usuario) FROM Usuario WHERE Nome_Usuario = @usuario AND Senha_Usuario = @senha";

                     SqlCommand cmd = new SqlCommand(StrSql, SqlConn);

                     cmd.Parameters.Add("@usuario",SqlDbType.VarChar).Value = usuario;
                     cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = pwd;
                    
                     
              //     cmd.Parameters.Add("@senhapgto", SqlDbType.VarChar).Value = pgto;

                     SqlConn.Open();

                     int v = (int)cmd.ExecuteScalar();

                     if (v > 0)
                     {
                         logado = true;
                         this.Dispose();
                     }
                     else
                     {
                         MessageBox.Show("Usuário ou Senha não estão Cadastrados!", "Erro!");
                         logado = false;
                     }

                 }
                 catch
                 {
                     MessageBox.Show("Falha na Conexão de Acesso ao Banco de Dados! ", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }

             }

             private void btn_efetuarlogin_Click(object sender, EventArgs e)
             {
                 Logar();

             }

             private void txt_senha_KeyDown(object sender, KeyEventArgs e)
             {
                 if (e.KeyCode == Keys.Enter)
                 {
                     Logar();
                 }
             }

       }
     }  

    Melhorei só a visibilidade das variáveis e a chamada da classe estática dentro do método Logar();

    espero que te ajudou.

    • Marcado como Resposta F.oliveirarocha segunda-feira, 13 de agosto de 2018 12:34
    domingo, 12 de agosto de 2018 06:29
  • Timóteo, bom dia,

    Parabéns, vc é o cara! 

    Muito bom, funcionou perfeitamente. Era exatamente isso que eu precisava.

    Obrigado.

    segunda-feira, 13 de agosto de 2018 12:34