Form de Login @Perfil não tem valor padrão

13/10/2013

Olá pessoal, tenho um windowsform de login onde estou implementando a verificação de perfil para restringir acessos ao usuário, só que nesta implementação está dando o seguinte erro "O parâmetro @Perfil não tem valor padrão.", como é o meu primeiro projeto...preciso de mais ajuda, aqui o código atual :

public partial class FrmLogin : Form
    {
        //responsavel pelo nivel de acesso
        public static string NivelAcesso;
        //responsavel por mostrar quem está conectado
        public static string usuarioConectado;
        //responsavel por mostrar a senha para o alerta.
        public static string senhaUsuario;

        public static string conexao;

        public FrmLogin()
        {
            InitializeComponent();
        }
             
        private void FrmLogin_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'bDBiblioteca2DataSet.Perfil' table. You can move, or remove it, as needed.
            this.perfilTableAdapter.Fill(this.bDBiblioteca2DataSet.Perfil);
            // TODO: This line of code loads data into the 'bDBiblioteca2DataSet.Funcionario' table. You can move, or remove it, as needed.
            this.funcionarioTableAdapter.Fill(this.bDBiblioteca2DataSet.Funcionario);
        }
        private void BtnEntrar_Click(object sender, EventArgs e)
        {
            try
            {
                if ((textBox1.Text != "") && (textBox2.Text != ""))
                {
                    OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\BDBiblioteca2.mdb");
                   
                    OleDbCommand comando = new OleDbCommand("Select * From Funcionario Where Login = @Login  And " + "Senha = @Senha And Perfil = @Perfil ", conexao);
                                        
                    comando.Parameters.Add("@Login ", OleDbType.VarChar).Value = textBox1.Text;
                    comando.Parameters.Add("@Senha", OleDbType.VarChar).Value = textBox2.Text;
                    comando.Parameters.Add("@Perfil", OleDbType.VarChar).Value = NivelAcesso;
                                        
                    conexao.Open();
                    OleDbDataReader reader = null;
                  
                    reader = comando.ExecuteReader();
                   
                    if (reader.Read())
                    {
                         usuarioConectado = textBox1.Text;
                        
                        senhaUsuario = textBox2.Text;
                        
                        FrmPrincipal frmp = new FrmPrincipal();
                        frmp.Show();
                        this.Visible = false;
                    }

Jair Souza

Respostas

13/10/2013

Gustavo Cardoso

tenta colocar
NivelAcesso = "2"; ou "1" , porque você definiu a string, mais não colocou valor nela..
Responder Citar