Inquiridor
ASP.net C# e Mysql

Pergunta
-
Olá pessoal tô passando um perrenho com o mysql e asp.net c# para uma pagina de login.
Se puderem me ajudar eu agradeço.
Segue a classe que criei pagina classeLogin.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using MySql.Data.MySqlClient; /// <summary> /// Summary description for ClasseLogin /// </summary> public class ClasseLogin { private string strCon; public ClasseLogin() { string host = "mysql01.meuhost.hospedagemdesites.ws"; string user = "meuuser"; string pass = "minhasenha"; string banco = "meubanco"; strCon = "server=" + host + "; user id=" + user + "; password=" + pass + "; database=" + banco + ";"; } public bool fazerLogin(string login, string senha) { bool encontrou = false; MySqlConnection conn = new MySqlConnection(strCon); string sql = "SELECT * FROM login WHERE login=@login AND senha=@senha"; MySqlDataAdapter adapatador = new MySqlDataAdapter(sql, conn); DataTable tabUsuario = new DataTable(); adapatador.SelectCommand.Parameters.Add("@login", MySqlDbType.String, 50); adapatador.SelectCommand.Parameters["@login"].Value = login; adapatador.SelectCommand.Parameters.Add("@senha", MySqlDbType.String, 50); adapatador.SelectCommand.Parameters["@senha"].Value = senha; try { conn.Open(); adapatador.Fill(tabUsuario); if (tabUsuario.Rows.Count > 0) { encontrou = true; } } catch (Exception e) { string erro = e.Message; } finally { conn.Close(); } return encontrou; } }
E agora a página de default.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class admin_Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ButtonLogin_Click(object sender, EventArgs e) { ClasseLogin ObjLogin = new ClasseLogin(); bool retorno = ObjLogin.fazerLogin(TextBoxLogin.Text, TextBoxSenha.Text); if (retorno == true) { Session["login"] = TextBoxLogin.Text; Response.Redirect("Servico.aspx"); } else { LabelMensagemLogin.Text = "Usuário não encontrado"; } } }
Não consigo de jeito nenhum que ele autentique, da sempre Usuario não encontrado e o usuario existe no banco de dados.
POderiam me ajudar a encontrar o erro.
Agradeço desde já
Todas as Respostas
-
Se você executa esta mesma query no banco retorna resultados?
Eu não usaria um dataTable para buscar apenas o login do usuário, você pode melhorar a performance desta rotina substituindo por um "Select ID from usuarios...." e utilize o execute scalar.
-
Sim. Localmente, ele funciona, pois instalei todos os aplicativos mysql necessários em meu micro. Mais na locaweb, eu apenas coloquei as "dll's" na pasta "bin" mysql.data.dll, mysql.data.entity.dll, mysql.visualstudio.dll e a mysql.web.dll
Já não sei mais o que fazer, pois encontro muito pouco tutorial sobre mysql e asp.net co c#
-
Rapidifre, fica bem difícil saber assim. vamos lá, existem outras Query's no seu projeto? teste elas. verifique se retorna dados. como você está publicando seu site? tente publicar utilizando File System.
Se a resposta foi útil por favor qualifique. Italo Biguzi Duarte, Desenvolvedor ASP.NET C# Email : Italo.biguzzi@gmail.com
-
-
-
-
Olá,
eu gosto de usar uma classe separada para login(classe conect) e funciona blzinha.
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// Summary description for conect /// </summary> public class conect { public static string StringDeConexao { get { return "server=meuhost;database=meudb;user id=usuario;pwd=minhasenha"; } } }
e no método login você pode chamar da seguinte forma
public bool fazerLogin(string login, string senha) { bool encontrou = false; MySqlConnection conn = new MySqlConnection(conect.StringDeConexao); string sql = "SELECT * FROM login WHERE login=@login AND senha=@senha"; MySqlDataAdapter adapatador = new MySqlDataAdapter(sql, conn); DataTable tabUsuario = new DataTable(); adapatador.SelectCommand.Parameters.Add("@login", MySqlDbType.String, 50); adapatador.SelectCommand.Parameters["@login"].Value = login; adapatador.SelectCommand.Parameters.Add("@senha", MySqlDbType.String, 50); adapatador.SelectCommand.Parameters["@senha"].Value = senha; try { conn.Open(); adapatador.Fill(tabUsuario); if (tabUsuario.Rows.Count > 0) { encontrou = true; } } catch (Exception e) { string erro = e.Message; } finally { conn.Close(); } return encontrou; } }
verifique tambem se o nome da sua base de dados, ou a descrição do host para acesso ao db está correto.
- Sugerido como Resposta Evandro Oliveira Novais sexta-feira, 15 de fevereiro de 2013 20:21
- Não Sugerido como Resposta Evandro Oliveira Novais sexta-feira, 15 de fevereiro de 2013 20:21
- Sugerido como Resposta Evandro Oliveira Novais terça-feira, 26 de fevereiro de 2013 12:26