Fórum c# e SQl ajudae #21060
06/10/2008
0
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
Curtir tópico
+ 0Posts
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.
Gostei + 0
07/10/2008
W0id
=D
Gostei + 0
07/10/2008
W0id
if (rd.Read())
{
if(rd.equals(Login)) //Logica de login seria essa?
{
frm.show();
}
}
else
{
messagebox.show(´login invalido´);
}
this.conexao.Close();
Gostei + 0
07/10/2008
Ricardo Silva
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();
Gostei + 0
07/10/2008
W0id
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
Gostei + 0
08/10/2008
Knight_of_wine
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");
}
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)