none
Verificar usuario no login RRS feed

  • Pergunta

  • Minha dúvida é que eu tenho um usuário e ele está associado em uma ou mais filiais, minha dúvida é como fazer para verificar se o usuário está para aquela filial?

    private void verificaUsuarioFilial()
            {
                Conexao.Close();
                Conexao.Open();
                try
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("select COUNT(*)FROM tbgFilial F,tbgUsuarioFilial");
                    sb.Append("where U.idUsuario=@idUsuario AND F.idFilial=@idFilial");
                    
                    SqlCommand cmd = new SqlCommand(sb.ToString(),Conexao);
                    SessaoSistema.IdFilial = comboBox1.SelectedValue.ToString();
                    cmd.Parameters.Add("@idUsuario", SessaoSistema.UsuarioId);
                    cmd.Parameters.Add("@idFilial", SessaoSistema.IdFilial);
                    SqlDataReader dr = cmd.ExecuteReader();
    
                    if (dr.HasRows)
                    {
                        if (!String.IsNullOrWhiteSpace(comboBox1.Text))
                            this.DialogResult = (VerificaLogin() ? DialogResult.OK : DialogResult.None); 
                    }
                    else
                    {
                        MessageBox.Show("Esta filial não está associada ao seu login!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    dr.Close();
    
                }
                catch (Exception)
                {
                    
                    throw;
                }
                finally { Conexao.Close();}
            }

    Dá o seguinte erro=> An unhandled exception of type 'System.NullReferenceException' occurred in ProClinic.exe

    Additional information: Object reference not set to an instance of an object.

    terça-feira, 10 de junho de 2014 19:17

Todas as Respostas

  • Olá Raniel,

       o erro deve estar em seus parametros e no Value da combo, pois IdFilial é um int ? se for int deve ter um valor no SelectedValue de sua combobox, caso não tenha valor vai gerar esse erro, um outro é essa sql está errada também falta o espaço ao fim da primeira linha e você declarou a letra U mas a letra U não existe na sua sql veja mais ou menos como deve ficar :

     StringBuilder sb = new StringBuilder();
                    sb.Append("select COUNT(*)FROM tbgFilial F,tbgUsuarioFilial U ");
                    sb.Append("where U.idUsuario=@idUsuario AND F.idFilial=@idFilial");
                    
                    SqlCommand cmd = new SqlCommand(sb.ToString(),Conexao);
                    SessaoSistema.IdFilial = (int)comboBox1.SelectedValue;
                    cmd.Parameters.Add("@idUsuario", SessaoSistema.UsuarioId);
                    cmd.Parameters.Add("@idFilial", SessaoSistema.IdFilial);
                    SqlDataReader dr = cmd.ExecuteReader();
     Agora cofira no debug o que é atribuido em sua combo para a variavel IdFilial !

    terça-feira, 10 de junho de 2014 19:31
  • Consegui já!
    sábado, 14 de junho de 2014 11:27