none
Controle de Usuário RRS feed

  • Pergunta

  • Bom dia

    Preciso mais uma vez da ajuda de vcs.

    preciso saber o usuário que esta logado na minha aplicação, comecei a fazer, mas só consigo colocar a informação de um usuário, o problema e que não consigo passar mais de um usuário pra tela de usuário logado.

    tela do form onde mostro o usuário.

    codigo da tela acima

    namespace MenuRelatorios
    {
        public partial class frmUsuarioLogado : Form
        {
            DateTime  datahora;

            public frmUsuarioLogado()
            {
                InitializeComponent();
            }

            private void frmUsuarioLogado_Load(object sender, EventArgs e)
            {
                txtUsuario.Text = "" + frmLogin.usuariologado;
                txtDep.Text = "" + frmLogin.deplogado;
                datahora = DateTime.Now;
                txtDtHr.Text = "Data: "+datahora.ToShortDateString()+" Hora:"+ datahora.ToShortTimeString();
       
                //txtNome2.Text = "" + frmLogin.usuariologado;
                //txtDep2.Text = "" + frmLogin.deplogado;
                //datahora = DateTime.Now;
                //txtDtHr2.Text = "Data: " + datahora.ToShortDateString() + " Hora:" + datahora.ToShortTimeString();
            }

            public string IDUsuario { get; set; }
        }
    }

    tela de login de onde puxo as informações para mostrar o usuario logado.

    codigo da tela de login...

     public partial class frmLogin : Form
        {
            public static string Acesso;
            public bool Logado = false;
            public static string Departamento;
            public int DepartamentoID;

            public frmLogin()
            {
                InitializeComponent();
            }

            public static string usuariologado;
            public static string deplogado;
            public int IDUsuario;


            public void logar()
            {
                SqlConnection cn = new SqlConnection(Properties.Settings.Default.USUARIOSConnectionString);
                SqlCommand cmd = new SqlCommand("SELECT Nome, Senha, Departamento FROM tbl_Usuarios WHERE Nome = @Nome AND Senha = @Senha AND Departamento = @Departamento", cn);

                cmd.Parameters.Add("@Nome", SqlDbType.VarChar).Value = txtNome.Text;
                cmd.Parameters.Add("@Senha", SqlDbType.VarChar).Value = txtSenha.Text;
                cmd.Parameters.Add("@Departamento", SqlDbType.VarChar).Value = departamentoComboBox.Text;
                cn.Open();

                SqlDataReader le = null;
                le = cmd.ExecuteReader();
                if (le.Read())
                {

                    this.Hide();
                    Acesso = txtNome.Text;
                    Acesso = txtSenha.Text;
                    Acesso = departamentoComboBox.Text;

                    MessageBox.Show("Bem vindo ao sistema");

                    Logado = true;
                    DepartamentoID = departamentoComboBox.SelectedIndex;

                    usuariologado = txtNome.Text;
                    IDUsuario = int.Parse(iDUsuarioTextBox.Text);
                    deplogado = departamentoComboBox.Text;
                }
                else
                {
                    MessageBox.Show("Dados digitados está incorreto, por favor digitar os dados correto!");
                    Logado = false;
                }
            }
            public string retornaID(string txtNome)
            {
                // criei uma variável para retornar o nome
                string ret = string.Empty;

                // fui no dataset e peguei a string de conexão que ele usa
                string connectionString1 = this.tbl_UsuariosTableAdapter.Connection.ConnectionString;

                // crio uma instância do banco de dados utilizando a string de conexão acima
                using (SqlConnection con = new SqlConnection(connectionString1))
                {
                    // mando abrir
                    con.Open();

                    // faço a query, concatenando com o txtCodigo ( A1_COD = '" + txtCodigo + "'";  )
                    string strQuery = @"
                                        SELECT        IDUsuario
                                        FROM          tbl_Usuarios
                                        WHERE         Nome = '" + txtNome + "'";

                    // rodo o comando, passando a query e a conexão
                    using (SqlCommand command = new SqlCommand(strQuery, con))

                    // Lendo o resultado atraves do command.ExecuteReader
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        // se tiver dados
                        while (reader.Read())
                        {
                            // mando ler o primeiro campo (e único também = A1_NOME)
                            reader.GetInt32(0);

                            // jogo na variavel de retorno, como é um só, eu dou break pra sair do laço (nem precisava)
                            ret = reader[0].ToString();
                            break;
                        }
                    }
                }

                // retorno o valor (A1_NOME) desejado
                return ret;
            }

            private void btnEntrar_Click(object sender, EventArgs e)
            {    
                if (string.IsNullOrEmpty(txtSenha.Text))
                {
                    MessageBox.Show("O Campo senha é obrigatório!", "Erro ao logar");
                    txtSenha.Focus();
                    return;
                }
                else
                {
                    logar();
                }
            }

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

            private void btnCadastro_Click(object sender, EventArgs e)
            {
                frmCadastroUsuario usu = new frmCadastroUsuario();
                usu.ShowDialog();
                usu.Dispose();
            }

            private void btnSair_Click(object sender, EventArgs e)
            {
                Close();
            }

            private void tbl_UsuariosBindingNavigatorSaveItem_Click(object sender, EventArgs e)
            {
                this.Validate();
                this.tbl_UsuariosBindingSource.EndEdit();
            }

            private void frmLogin_Load(object sender, EventArgs e)
            {
                this.tbl_UsuariosTableAdapter.Fill(this.cadastroUsuarioDataSet1.tbl_Usuarios);

                this.tbl_nivelacessoTableAdapter.Fill(this.cargosDataSet1.tbl_nivelacesso);
            }
     
            private void txtNome_KeyDown(object sender, KeyEventArgs e)
            {
               if (e.KeyCode == Keys.Enter)
                {
                    // Ele vai lá na função que criei, passando o codCliente e retorna no campo do nome (txtNomeCliente.Text)
                   iDUsuarioTextBox.Text = retornaID(txtNome.Text);

                    // Manda o cursor dar foco no txtDataDe
                    txtNome.Focus();
                }
            }

        }
    }


    JUNIOR GUERREIRO T.I

    quarta-feira, 18 de janeiro de 2017 12:52

Respostas

Todas as Respostas

  • Olá Junior Guerreiro

    Você precisa saber todos os usuário logados no momento?


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quarta-feira, 18 de janeiro de 2017 12:56
  • Opa Daniel.

    Isso mesmo preciso saber quem esta logado e mostrar no form e possível?


    JUNIOR GUERREIRO T.I

    quarta-feira, 18 de janeiro de 2017 12:59
  • Então você vai precisar ir alimentando uma tabela do banco de dados para isso!

    Quando o usuario se logar você deixa um campo boolean para deixar true ou false;

    Referente a que FORM ele esta, você vai precisar a cada formulario que ele acessar disparar um evento para dar um update na sua tabela com o nome do FORM.


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quarta-feira, 18 de janeiro de 2017 13:02
  • Não Daniel preciso só mostrar quem esta logado, não preciso saber o que esta sendo feito.

    e possivel preenchendo os campos do form de usuario logado.


    JUNIOR GUERREIRO T.I


    quarta-feira, 18 de janeiro de 2017 13:06
  • OK Junior Guerreiro

    Neste caso então você precisa somente quando o usuário se logar dar um update em alguma tabela informando que ele esta logado, ao fechar o programa faz outro update informando que não esta logado!


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quarta-feira, 18 de janeiro de 2017 13:17
  • Então na minha tabela de usuario vou precisar criar um campo Ex. usuarioLogado, e nesse campo fazer um update quando o usuario logar ficar usuariologado = S ai quando sair da aplicação eu fazer outro update dizendo usuariologado = N. E isso?

    JUNIOR GUERREIRO T.I

    quarta-feira, 18 de janeiro de 2017 13:20
  • Exatamente!!! 

    Isso mesmo, desta forma você consegui gerar até mesmo uma lista de todos os usuários logado no momento!


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quarta-feira, 18 de janeiro de 2017 13:22
  • Daniel este campo que preciso criar na minha tabela do sql, que tipo de campos seria, bit, varchar....

    qual seria o tipo do campo.


    JUNIOR GUERREIRO T.I

    quarta-feira, 18 de janeiro de 2017 13:48
  • Pode ser BIT será true ou false, 1 ou 0.

    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quarta-feira, 18 de janeiro de 2017 13:58
  • Daniel vc pode me orientar onde eu crio o update no meu codigo abaixo.

    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;
    using System.Data.Common;

    namespace MenuRelatorios
    {
        public partial class frmLogin : Form
        {
            public static string Acesso;
            public bool Logado = false;
            public static string Departamento;
            public int DepartamentoID;

            public frmLogin()
            {
                InitializeComponent();
            }

            public static string usuariologado;
            public static string deplogado;
            public int IDUsuario;


            public void logar()
            {
                SqlConnection cn = new SqlConnection(Properties.Settings.Default.USUARIOSConnectionString);
                SqlCommand cmd = new SqlCommand("SELECT Nome, Senha, Departamento FROM tbl_Usuarios WHERE Nome = @Nome AND Senha = @Senha AND Departamento = @Departamento", cn);

                cmd.Parameters.Add("@Nome", SqlDbType.VarChar).Value = txtNome.Text;
                cmd.Parameters.Add("@Senha", SqlDbType.VarChar).Value = txtSenha.Text;
                cmd.Parameters.Add("@Departamento", SqlDbType.VarChar).Value = departamentoComboBox.Text;
                cn.Open();

                SqlDataReader le = null;
                le = cmd.ExecuteReader();
                if (le.Read())
                {

                    this.Hide();
                    Acesso = txtNome.Text;
                    Acesso = txtSenha.Text;
                    Acesso = departamentoComboBox.Text;

                    MessageBox.Show("Bem vindo ao sistema");

                    Logado = true;
                    DepartamentoID = departamentoComboBox.SelectedIndex;


                    usuariologado = txtNome.Text;
                    IDUsuario = Int32.Parse(txtID.Text);
                    deplogado = departamentoComboBox.Text;
                }
                else
                {
                    MessageBox.Show("Dados digitados está incorreto, por favor digitar os dados correto!");
                    Logado = false;
                }

            }
            public string retornaID(string txtNome)
            {
                // criei uma variável para retornar o nome
                string ret = string.Empty;

                // fui no dataset e peguei a string de conexão que ele usa
                string connectionString1 = this.tbl_UsuariosTableAdapter.Connection.ConnectionString;

                // crio uma instância do banco de dados utilizando a string de conexão acima
                using (SqlConnection con = new SqlConnection(connectionString1))
                {
                    // mando abrir
                    con.Open();

                    // faço a query, concatenando com o txtCodigo ( A1_COD = '" + txtCodigo + "'";  )
                    string strQuery = @"
                                        SELECT        IDUsuario
                                        FROM          tbl_Usuarios
                                        WHERE         Nome = '" + txtNome + "'";

                    // rodo o comando, passando a query e a conexão
                    using (SqlCommand command = new SqlCommand(strQuery, con))

                    // Lendo o resultado atraves do command.ExecuteReader
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        // se tiver dados
                        while (reader.Read())
                        {
                            // mando ler o primeiro campo (e único também = A1_NOME)
                            reader.GetInt32(0);

                            // jogo na variavel de retorno, como é um só, eu dou break pra sair do laço (nem precisava)
                            ret = reader[0].ToString();
                            break;
                        }
                    }
                }

                // retorno o valor (A1_NOME) desejado
                return ret;
            }

            private void btnEntrar_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(txtSenha.Text))
                {
                    MessageBox.Show("O Campo senha é obrigatório!", "Erro ao logar");
                    txtSenha.Focus();
                    return;
                }
                else
                {
                    logar();
                }
         
            }

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

            private void btnCadastro_Click(object sender, EventArgs e)
            {
                frmCadastroUsuario usu = new frmCadastroUsuario();
                usu.ShowDialog();
                usu.Dispose();
            }

            private void btnSair_Click(object sender, EventArgs e)
            {
                Close();
            }

            private void tbl_UsuariosBindingNavigatorSaveItem_Click(object sender, EventArgs e)
            {
                this.Validate();
                this.tbl_UsuariosBindingSource.EndEdit();
            }

            private void frmLogin_Load(object sender, EventArgs e)
            {
                this.tbl_UsuariosTableAdapter.Fill(this.cadastroUsuarioDataSet1.tbl_Usuarios);

                this.tbl_nivelacessoTableAdapter.Fill(this.cargosDataSet1.tbl_nivelacesso);
            }
     
            private void txtNome_KeyDown(object sender, KeyEventArgs e)
            {
               if (e.KeyCode == Keys.Enter)
                {
                    // Ele vai lá na função que criei, passando o codCliente e retorna no campo do nome (txtNomeCliente.Text)
                   txtID.Text = retornaID(txtNome.Text);

                    // Manda o cursor dar foco no txtDataDe
                    txtNome.Focus();
                    if (e.Shift)
                    {
                        SendKeys.Send("+{TAB}");
                    }
                    else
                    {
                        SendKeys.Send("{TAB}");
                    }

                }
            }

            private void departamentoComboBox_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    if (e.Shift)
                    {
                        SendKeys.Send("+{TAB}");
                    }
                    else
                    {
                        SendKeys.Send("{TAB}");
                    }
                }
            }

        }
          
    }
    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;
    using System.Data.Common;

    namespace MenuRelatorios
    {
        public partial class frmLogin : Form
        {
            public static string Acesso;
            public bool Logado = false;
            public static string Departamento;
            public int DepartamentoID;

            public frmLogin()
            {
                InitializeComponent();
            }

            public static string usuariologado;
            public static string deplogado;
            public int IDUsuario;


            public void logar()
            {
                SqlConnection cn = new SqlConnection(Properties.Settings.Default.USUARIOSConnectionString);
                SqlCommand cmd = new SqlCommand("SELECT Nome, Senha, Departamento FROM tbl_Usuarios WHERE Nome = @Nome AND Senha = @Senha AND Departamento = @Departamento", cn);

                cmd.Parameters.Add("@Nome", SqlDbType.VarChar).Value = txtNome.Text;
                cmd.Parameters.Add("@Senha", SqlDbType.VarChar).Value = txtSenha.Text;
                cmd.Parameters.Add("@Departamento", SqlDbType.VarChar).Value = departamentoComboBox.Text;
                cn.Open();

                SqlDataReader le = null;
                le = cmd.ExecuteReader();
                if (le.Read())
                {

                    this.Hide();
                    Acesso = txtNome.Text;
                    Acesso = txtSenha.Text;
                    Acesso = departamentoComboBox.Text;

                    MessageBox.Show("Bem vindo ao sistema");

                    Logado = true;
                    DepartamentoID = departamentoComboBox.SelectedIndex;


                    usuariologado = txtNome.Text;
                    IDUsuario = Int32.Parse(txtID.Text);
                    deplogado = departamentoComboBox.Text;
                }
                else
                {
                    MessageBox.Show("Dados digitados está incorreto, por favor digitar os dados correto!");
                    Logado = false;
                }

            }
            public string retornaID(string txtNome)
            {
                // criei uma variável para retornar o nome
                string ret = string.Empty;

                // fui no dataset e peguei a string de conexão que ele usa
                string connectionString1 = this.tbl_UsuariosTableAdapter.Connection.ConnectionString;

                // crio uma instância do banco de dados utilizando a string de conexão acima
                using (SqlConnection con = new SqlConnection(connectionString1))
                {
                    // mando abrir
                    con.Open();

                    // faço a query, concatenando com o txtCodigo ( A1_COD = '" + txtCodigo + "'";  )
                    string strQuery = @"
                                        SELECT        IDUsuario
                                        FROM          tbl_Usuarios
                                        WHERE         Nome = '" + txtNome + "'";

                    // rodo o comando, passando a query e a conexão
                    using (SqlCommand command = new SqlCommand(strQuery, con))

                    // Lendo o resultado atraves do command.ExecuteReader
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        // se tiver dados
                        while (reader.Read())
                        {
                            // mando ler o primeiro campo (e único também = A1_NOME)
                            reader.GetInt32(0);

                            // jogo na variavel de retorno, como é um só, eu dou break pra sair do laço (nem precisava)
                            ret = reader[0].ToString();
                            break;
                        }
                    }
                }

                // retorno o valor (A1_NOME) desejado
                return ret;
            }

            private void btnEntrar_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(txtSenha.Text))
                {
                    MessageBox.Show("O Campo senha é obrigatório!", "Erro ao logar");
                    txtSenha.Focus();
                    return;
                }
                else
                {
                    logar();
                }
         
            }

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

            private void btnCadastro_Click(object sender, EventArgs e)
            {
                frmCadastroUsuario usu = new frmCadastroUsuario();
                usu.ShowDialog();
                usu.Dispose();
            }

            private void btnSair_Click(object sender, EventArgs e)
            {
                Close();
            }

            private void tbl_UsuariosBindingNavigatorSaveItem_Click(object sender, EventArgs e)
            {
                this.Validate();
                this.tbl_UsuariosBindingSource.EndEdit();
            }

            private void frmLogin_Load(object sender, EventArgs e)
            {
                this.tbl_UsuariosTableAdapter.Fill(this.cadastroUsuarioDataSet1.tbl_Usuarios);

                this.tbl_nivelacessoTableAdapter.Fill(this.cargosDataSet1.tbl_nivelacesso);
            }
     
            private void txtNome_KeyDown(object sender, KeyEventArgs e)
            {
               if (e.KeyCode == Keys.Enter)
                {
                    // Ele vai lá na função que criei, passando o codCliente e retorna no campo do nome (txtNomeCliente.Text)
                   txtID.Text = retornaID(txtNome.Text);

                    // Manda o cursor dar foco no txtDataDe
                    txtNome.Focus();
                    if (e.Shift)
                    {
                        SendKeys.Send("+{TAB}");
                    }
                    else
                    {
                        SendKeys.Send("{TAB}");
                    }

                }
            }

            private void departamentoComboBox_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    if (e.Shift)
                    {
                        SendKeys.Send("+{TAB}");
                    }
                    else
                    {
                        SendKeys.Send("{TAB}");
                    }
                }
            }

        }
          
    }


    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 11:40
  • Junior Guerreiro

    public void logar() { SqlConnection cn = new SqlConnection(Properties.Settings.Default.USUARIOSConnectionString); SqlCommand cmd = new SqlCommand("SELECT Nome, Senha, Departamento FROM tbl_Usuarios WHERE Nome = @Nome AND Senha = @Senha AND Departamento = @Departamento", cn); cmd.Parameters.Add("@Nome", SqlDbType.VarChar).Value = txtNome.Text; cmd.Parameters.Add("@Senha", SqlDbType.VarChar).Value = txtSenha.Text; cmd.Parameters.Add("@Departamento", SqlDbType.VarChar).Value = departamentoComboBox.Text; cn.Open(); SqlDataReader le = null; le = cmd.ExecuteReader(); if (le.Read()) { this.Hide(); Acesso = txtNome.Text; Acesso = txtSenha.Text; Acesso = departamentoComboBox.Text; MessageBox.Show("Bem vindo ao sistema"); Logado = true; DepartamentoID = departamentoComboBox.SelectedIndex; usuariologado = txtNome.Text; IDUsuario = Int32.Parse(txtID.Text); deplogado = departamentoComboBox.Text;

    //VOCÊ PODE COLOCAR AQUI SEU CÓDIGO COM O UPDATE

    //NESTE MOMENTO TEMOS CERTEZA QUE O USUÁRIO E SENHA ESTA OK

    } else { MessageBox.Show("Dados digitados está incorreto, por favor digitar os dados correto!"); Logado = false; } }



    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quinta-feira, 19 de janeiro de 2017 11:48
  • Daniel e isso, ou estou fazendo algo errado, porque esta passando mas não esta fazendo o update.

     if (le.Read())
                {

                    this.Hide();
                    Acesso = txtNome.Text;
                    Acesso = txtSenha.Text;
                    Acesso = departamentoComboBox.Text;

                    MessageBox.Show("Bem vindo ao sistema");

                    Logado = true;
                    DepartamentoID = departamentoComboBox.SelectedIndex;


                    usuariologado = txtNome.Text;
                    IDUsuario = Int32.Parse(txtID.Text);
                    deplogado = departamentoComboBox.Text;

                    SqlCommand comand = new SqlCommand();
                    comand.CommandText = "Update tbl_Usuarios set UsuarioLogado = 'S' where IDUsuario = @IDusuario";


    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 12:12
  • Isso mesmo!

    O campo que você criou aceita texto certo 'S'.


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quinta-feira, 19 de janeiro de 2017 12:14
  • Então criei um campo Bit, e mesmo colocando numero não faz o update na tabela...

    Será que preciso concatenar algum campo nesse update.


    JUNIOR GUERREIRO T.I



    quinta-feira, 19 de janeiro de 2017 12:18
  • Então seria

    0 = false

    1 = true

    Update tbl_Usuarios set UsuarioLogado = 0 where IDUsuario = @IDusuario


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quinta-feira, 19 de janeiro de 2017 12:19
  • Então não faz o update não...

    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 12:25
  • esta ai a classe completa .

    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;
    using System.Data.Common;

    namespace MenuRelatorios
    {
        public partial class frmLogin : Form
        {
            public static string Acesso;
            public bool Logado = false;
            public static string Departamento;
            public int DepartamentoID;

            public frmLogin()
            {
                InitializeComponent();
            }

            public static string usuariologado;
            public static string deplogado;
            public int IDUsuario;


            public void logar()
            {
                SqlConnection cn = new SqlConnection(Properties.Settings.Default.USUARIOSConnectionString1);
                SqlCommand cmd = new SqlCommand("SELECT Nome, Senha, Departamento FROM tbl_Usuarios WHERE Nome = @Nome AND Senha = @Senha AND Departamento = @Departamento", cn);

                cmd.Parameters.Add("@Nome", SqlDbType.VarChar).Value = txtNome.Text;
                cmd.Parameters.Add("@Senha", SqlDbType.VarChar).Value = txtSenha.Text;
                cmd.Parameters.Add("@Departamento", SqlDbType.VarChar).Value = departamentoComboBox.Text;
                cn.Open();

                SqlDataReader le = null;
                le = cmd.ExecuteReader();
                if (le.Read())
                {

                    this.Hide();
                    Acesso = txtNome.Text;
                    Acesso = txtSenha.Text;
                    Acesso = departamentoComboBox.Text;

                    MessageBox.Show("Bem vindo ao sistema");

                    Logado = true;
                    DepartamentoID = departamentoComboBox.SelectedIndex;


                    usuariologado = txtNome.Text;
                    IDUsuario = Int32.Parse(txtID.Text);
                    deplogado = departamentoComboBox.Text;

                    SqlCommand comand = new SqlCommand();
                    comand.CommandText = "Update tbl_Usuarios set UsuarioLogado = '1' where IDUsuario = '" + txtNome + "'";

                }
                else
                {
                    MessageBox.Show("Dados digitados está incorreto, por favor digitar os dados correto!");
                    Logado = false;
                }

            }
            public string retornaID(string txtNome)
            {
                // criei uma variável para retornar o nome
                string ret = string.Empty;

                // fui no dataset e peguei a string de conexão que ele usa
                string connectionString1 = this.tbl_UsuariosTableAdapter.Connection.ConnectionString;

                // crio uma instância do banco de dados utilizando a string de conexão acima
                using (SqlConnection con = new SqlConnection(connectionString1))
                {
                    // mando abrir
                    con.Open();

                    // faço a query, concatenando com o txtCodigo ( A1_COD = '" + txtCodigo + "'";  )
                    string strQuery = @"
                                        SELECT        IDUsuario
                                        FROM          tbl_Usuarios
                                        WHERE         Nome = '" + txtNome + "'";

                    // rodo o comando, passando a query e a conexão
                    using (SqlCommand command = new SqlCommand(strQuery, con))

                    // Lendo o resultado atraves do command.ExecuteReader
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        // se tiver dados
                        while (reader.Read())
                        {
                            // mando ler o primeiro campo (e único também = A1_NOME)
                            reader.GetInt32(0);

                            // jogo na variavel de retorno, como é um só, eu dou break pra sair do laço (nem precisava)
                            ret = reader[0].ToString();
                            break;
                        }
                    }
                }

                // retorno o valor (A1_NOME) desejado
                return ret;
            }

            private void btnEntrar_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(txtSenha.Text))
                {
                    MessageBox.Show("O Campo senha é obrigatório!", "Erro ao logar");
                    txtSenha.Focus();
                    return;
                }
                else
                {
                    logar();
                }
         
            }

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

            private void btnCadastro_Click(object sender, EventArgs e)
            {
                frmCadastroUsuario usu = new frmCadastroUsuario();
                usu.ShowDialog();
                usu.Dispose();
            }

            private void btnSair_Click(object sender, EventArgs e)
            {
                Close();
            }

            private void tbl_UsuariosBindingNavigatorSaveItem_Click(object sender, EventArgs e)
            {
                this.Validate();
                this.tbl_UsuariosBindingSource.EndEdit();
            }

            private void frmLogin_Load(object sender, EventArgs e)
            {
                this.tbl_UsuariosTableAdapter.Fill(this.cadastroUsuarioDataSet1.tbl_Usuarios);

                this.tbl_nivelacessoTableAdapter.Fill(this.cargosDataSet1.tbl_nivelacesso);
            }
     
            private void txtNome_KeyDown(object sender, KeyEventArgs e)
            {
               if (e.KeyCode == Keys.Enter)
                {
                    // Ele vai lá na função que criei, passando o codCliente e retorna no campo do nome (txtNomeCliente.Text)
                   txtID.Text = retornaID(txtNome.Text);

                    // Manda o cursor dar foco no txtDataDe
                    txtNome.Focus();
                    if (e.Shift)
                    {
                        SendKeys.Send("+{TAB}");
                    }
                    else
                    {
                        SendKeys.Send("{TAB}");
                    }

                }
            }

            private void departamentoComboBox_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    if (e.Shift)
                    {
                        SendKeys.Send("+{TAB}");
                    }
                    else
                    {
                        SendKeys.Send("{TAB}");
                    }
                }
            }

        }
          
    }


    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 13:15
  • Junior Guerreiro

    Dentro do métodos logar() altera 

    SqlCommand comand = new SqlCommand();
    comand.CommandText = "Update tbl_Usuarios set UsuarioLogado = '1' where IDUsuario = '" + txtNome + "'";
    PARA 
    SqlCommand cmdUpdate = new SqlCommand("Update tbl_Usuarios set UsuarioLogado = '1' where IDUsuario = '" + IDUsuario + "'", cn);
    cmdUpdate.ExecuteNonQuery();



    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quinta-feira, 19 de janeiro de 2017 13:20
  • Daniel deu este erro depois que fia a alteração que vc pediu.

    Esta pedindo pra fechar a conexão antes.


    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 14:12
  • Só para testar deixei da forma abaixo

    SqlConnection cnUpdate = new SqlConnection(Properties.Settings.Default.USUARIOSConnectionString1);
    SqlCommand cmdUpdate = new SqlCommand("Update tbl_Usuarios set UsuarioLogado = '1' where IDUsuario = '" + IDUsuario + "'", cnUpdate);
    cmdUpdate.ExecuteNonQuery();


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro quinta-feira, 19 de janeiro de 2017 15:55
    quinta-feira, 19 de janeiro de 2017 14:58
  • Daniel blz funcionou dessa forma.

                    cn.Close();

                    cn.Open();
                    SqlCommand cmdUpdate = new SqlCommand("Update tbl_Usuarios set UsuarioLogado = '1' where IDUsuario = '" + IDUsuario + "'", cn);
                    cmdUpdate.ExecuteNonQuery();

    agora onde eu coloco o update e como o faço para quando o usuário sair do sistema ele mostrar 0=false.


    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 15:01
  • Você pode usar o mesmo código alterando de 1 para 0, se vc tiver um FORM principal no evento FormClosed()


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro quinta-feira, 19 de janeiro de 2017 15:55
    quinta-feira, 19 de janeiro de 2017 15:04
  • então dentro do meu form principal eu tenho o botão sair, pode ser nesse botão, e tem que ser dentro do evnto clik desse botão..

    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 15:10
  • Pode ser neste botão sim Junior Guerreiro.

    O unico detalhe é! Você tem o botão X de Fechar na tela ou somente a opção de sair que fecha o programa?


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro quinta-feira, 19 de janeiro de 2017 15:55
    quinta-feira, 19 de janeiro de 2017 15:11
  • Então eu tenho o botão X da tela, tem como inativar este botão no form, porque ai eu inativo ele, e o usuario e obrigado a sair pelo botão sair...

    tentei fazer no botão sair, so que deu a seguinte mensagem, nesse form principal eu não identifico usuário então não tem como o update saber qual usuario e pra fazer o update na tabela quando sair.


    JUNIOR GUERREIRO T.I

    quinta-feira, 19 de janeiro de 2017 15:17
  • Referente o usuário é só você passar o ID do usuário logado para ele... 

    E referente o fechar coloca o seu código no evento FormClosed() ai tanto faz fechar pelo click do botão ou pelo X



    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro quinta-feira, 19 de janeiro de 2017 15:55
    quinta-feira, 19 de janeiro de 2017 15:51