c# e SQl ajudae
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
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.
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();
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();
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
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"); }
Clique aqui para fazer login e interagir na Comunidade :)