Sqlcommand and Executereader parameters

Asked

Viewed 370 times

1

I can’t get bank values and direct a form according to what "profile" is in the users table, if I take the part of ExecuteReader, works the login, however, I need to check the user profile, my code is like this:

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 PesadaoFinal
{
    public partial class frmLogin : Form
    {

        SqlConnection conn = null;
        private string conexao = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Breno\Documents\Visual Studio 2013\Projects\PesadaoFinal\PesadaoFinal\bd\pesadao_db.mdf;Integrated Security=True;Connect Timeout=30";
        private string consulta = string.Empty;

        public frmLogin()
        {
            InitializeComponent();
        }
        public void logar(){


            conn= new SqlConnection(conexao);

            try{
                string usuario, senha, cargo;

                usuario = txtUsu.Text;
                senha=txtSenha.Text;
                SqlDataReader verCargo = null;
                String usulogado, cpf; 



                if(usuario==string.Empty && senha==string.Empty){

                    MessageBox.Show("Usuário e senha devem ser digitados!");
                }
                else if (usuario != null && senha != null)
                {
                    consulta = @"SELECT * FROM funcionarios WHERE login = @usuario AND senha = @senha";
                    SqlCommand novoLogin = new SqlCommand(consulta, conn);
                    novoLogin.Parameters.Add("@usuario", SqlDbType.VarChar).Value = usuario;
                    novoLogin.Parameters.Add("@senha", SqlDbType.VarChar).Value = senha;

                    conn.Open();


                    object rs = novoLogin.ExecuteScalar();

                    if (rs == null)
                    {
                        MessageBox.Show("Usuário ou Senha Incorretos");
                    }
                    else
                    {
                        verCargo = novoLogin.ExecuteReader(CommandBehavior.CloseConnection);
                        if (verCargo != null)
                        {
                            while (verCargo.Read())
                            {
                                usulogado = (verCargo[2].ToString);
                                cpf = (verCargo[1].ToString);


                            }


                        }
                    }

                }     


            }catch(SqlException erroBD){
                MessageBox.Show(erroBD +"Erro no banco");

            }


        }
        private void frmLogin_Load(object sender, EventArgs e)
        {


        }

        private void btnLogar_Click(object sender, EventArgs e)
        {
            logar();
        }
    }
}  

And the mistake I have is this:

>Error  1   Cannot convert method group 'ToString' to non-delegate type 'string'. Did you intend to invoke the method?  c:\users\breno\documents\visual studio 2013\Projects\PesadaoFinal\PesadaoFinal\Form1.cs 67  46  PesadaoFinal
  • You know that your code can leave the connection open if any exceptions occur?

  • Didn’t know, this is good or bad? How should I treat this?

  • Bad. It’s something long to explain in a comment. I think I should open a question about it. I think it’s missing in the website. Pole only the logar().

1 answer

1


  • bigow, after more than 1 day trying to solve this, I could only now see this grotesque mistake.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.