Parametros oracle com CSharp

07/05/2018

1

Estou com dificuldade em utilizar os parametros do Oracle com o c#.
private void queryentar()
        {
            string query = "SELECT * FROM solicitacao_recurso.USUARIO WHERE CHAVE_REDE=:CHAVE and SENHA=:SENHA";
            string queryperfil = "select PERFIL from solicitacao_recurso.USUARIO where CHAVE_REDE=:CHAVE and SENHA=:SENHA";
            Conexao conexao = new Conexao();
            conexao.Conectar();
            string senha, chave;
            senha = txtsenha.ToString();
            chave = txtchave.ToString();

            //Comando para verificar o login
            OleDbCommand comando = new OleDbCommand(query, conexao.cn);

            comando.Parameters.Add("CHAVE", OleDbType.VarChar);
            comando.Parameters[0].Value = chave;
            comando.Parameters.Add("SENHA", OleDbType.VarChar);
            comando.Parameters[0].Value = senha;

            //Verifica os dados do login
            OleDbDataReader dr = comando.ExecuteReader();// Erro acontece nessa linha

                if (dr.Read())
                {
                    Autenticacao.login(dr["CHAVE_REDE"].ToString(), dr["SENHA"].ToString(), Convert.ToInt32(dr["PERFIL"]));
                }
                else
                {
                    MessageBox.Show("Usuario ou senha invalidos");
                }

            //Comando para verificar o perfil de usuario que esta logando
            OleDbCommand comandoperfil = new OleDbCommand(queryperfil, conexao.cn);
            comandoperfil.Parameters.Add(new OleDbParameter("CHAVE", chave));
            comandoperfil.Parameters.Add(new OleDbParameter("SENHA", senha));


            //Passa valor do select para a variavel
            int perfil;
                OleDbDataReader rd = comandoperfil.ExecuteReader();
                if (rd.Read())
                {
                    perfil = rd.GetInt32(0);

                    //Se o codigo de perfil for igual a 1 abre o formulario de TI
                    if (perfil == 1)
                    {
                        TImenu abre = new TImenu();
                        abre.Show();
                    }
                    if (perfil == 2)
                    {
                        GAaprova abre = new GAaprova();
                        abre.Show();
                    }
                    if (perfil == 3)
                    {
                        GTImenu abre = new GTImenu();
                        abre.Show();
                    }
                    if (perfil == 4)
                    {
                        SPmenu abre = new SPmenu();
                        abre.Show();
                    }
                    if (perfil == 5)
                    {
                        SOmenu abre = new SOmenu();
                        abre.Show();
                    }
                }
            
            conexao.Desconectar();

        }
Responder