c# e SQl ajudae

06/10/2008

0

bom minha duvida eh que nao sei fazer como pegar o conteudo de uma SQL
no banco de dados.Como faço?preciso buscar o login pra validar o login e depois a senha.


public partial class FrmLogin : Form
{
private OleDbConnection conexao;
private OleDbCommand comando;

public FrmLogin()
{
InitializeComponent();
String str = @´Provider=Microsoft.Jet.OLEDB.4.0;Data Source=´C:\Documents and Settings\Administrador\Desktop\Hospital.mdb´´;

this.conexao = new OleDbConnection(str);
this.comando = new OleDbCommand();

this.comando.Connection = this.conexao;
FrmPesquisaAdministrador frm = new FrmPesquisaAdministrador();
}

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

private void button1_Click(object sender, EventArgs e)
{
String Login = this.txtLogin.Text;
String pw = this.txtSenha.Text;
String lg = ´ SELECT usario FROM Usuarios WHERE usuario = ´ ´+ Login +´´ ´;

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conexao;
cmd.CommandText = lg;
cmd.ExecuteNonQuery();
this.conexao.Open();
this.conexao.Close();
}
}


W0id

W0id

Responder

Posts

06/10/2008

Knight_of_wine

 public partial class FrmLogin : Form
    {
        private OleDbConnection conexao;
        private OleDbCommand comando;

        public FrmLogin()
        {
            InitializeComponent();
            String str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=´C:\Documents and Settings\Administrador\Desktop\Hospital.mdb´";

            this.conexao = new OleDbConnection(str);
            this.comando = new OleDbCommand();

            this.comando.Connection = this.conexao;
            FrmPesquisaAdministrador frm = new FrmPesquisaAdministrador();
        }

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

        private void button1_Click(object sender, EventArgs e)
        {
            String Login = this.txtLogin.Text;
            String pw = this.txtSenha.Text;
            String lg = " SELECT usario FROM Usuarios WHERE usuario = ´ "+ Login +"´ ";
     
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = this.conexao;
            cmd.CommandText = lg;

            this.conexao.Open();

            OleDbDataReader rd = cmd.ExecuteReader;
            if (rd.Read())
                {   
                     //Coloque sua lógica de login aqui.
                }
                else
                {
                   //Login Falhou
                }

            this.conexao.Close();
       }
    }



O seu problema é que você utilizou o método ExecuteNonQuery do Command. Esse método é utilizado para comandos de Insert, Update ou Delete, que não retornam dados.

Outra coisa, abra sua conexão antes de executar o command e não depois.

Use o código acima que vai dar certo.


Responder

07/10/2008

W0id

vlw pela ajudaa

=D


Responder

07/10/2008

W0id

OleDbDataReader rd = cmd.ExecuteReader(); <---aqui da 1 erro dizendo q recebeu nulo
if (rd.Read())
{
if(rd.equals(Login)) //Logica de login seria essa?
{
frm.show();
}
}
else
{
messagebox.show(´login invalido´);
}

this.conexao.Close();


Responder

07/10/2008

Ricardo Silva

exemplo

OleDbDataReader rd = cmd.ExecuteReader(); <---aqui da 1 erro dizendo q recebeu nulo
if (rd.Read())
{
if(rd[color=red:18a0d85b5a][´nomeLogin´][/color:18a0d85b5a].ToString() == ´Usuario1´) //Logica de login é essa!
{
frm.show();
}
}
else
{
messagebox.show(´login invalido´);
}

this.conexao.Close();


Responder

07/10/2008

W0id

this.conexao.Open();
FrmPesquisaAdministrador frm = new FrmPesquisaAdministrador();

String Login = this.txtLogin.Text;
String pw = this.txtSenha.Text;
String nv = this.cbNivel.Text;
String lg = ´ SELECT * FROM Usuarios WHERE usuario = ´´+ Login +´´ and senha = ´´+ pw +´´ ´;


OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conexao;
cmd.CommandText = lg;

OleDbDataReader rd = cmd.ExecuteReader();

if (rd.Read())
{
//seria aki a logica do nivel de acesso mas como faze-lo?
frm.Show();
}
else
{
MessageBox.Show(´login inexistente´);
}

this.conexao.Close();


sim n to entendendo direito...tipo...eu preciso saber se o nivel do usuario eh admin ou operador...pois tenho q abrir 1 form diferente pra cada 1
e o execute reader eu posso usalo mais de uma vez? ajudae :S


Responder

08/10/2008

Knight_of_wine

Depende de como você define o nível de usuário.

Se for através um campo na tabela de login você pode fazer assim:


if (rd.Read())
{
     if (rd["ADMIN"] == "S")
     {
          //Abra seu form de admin
     }
     else
     {
         //Abra o outro form
     }
}
else
{
    MessageBox.Show("login inexistente");
} 




Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar