Usuário com melhor resposta
Manipulando dados do BD

Pergunta
-
Quando estou fazendo um consulta, por exemplo: se o acc == pass, retornando todos os dados do cliente em variáveis. Como:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MySql.Data.MySqlClient; namespace Imob { public class Conexao { MySqlConnection conn = null; string _conn = "server=localhost;user id=root;password=030594;database=imob;"; public bool TentarLogar(string user, string senha) { bool autenticado = false; string sql = "SELECT * FROM usuarios WHERE usuario='" + user + "' and senha='" + senha + "';"; MySqlConnection conn = new MySqlConnection(_conn); MySqlCommand cmd = new MySqlCommand(sql, conn); conn.Open(); MySqlDataReader dr = cmd.ExecuteReader(); try { if (dr.Read()) { Tipos tipos = new Tipos(); tipos.AccountID = (int)dr["id_usuario"]; tipos.Username = (string)dr["usuario"]; tipos.Senha = (string)dr["senha"]; tipos.UltimoLogin = (DateTime)dr["ultimo_login"]; autenticado = true; dr.Close(); } conn.Close(); } catch (Exception e) { autenticado = false; System.Windows.Forms.MessageBox.Show(e.Message.ToString()); } return autenticado; } } }
estou usando o metodo MessageBox.Show("Logado, " + tipos.Username);
so que nao ta retornando valor nenhum. Alguém sabe o pq?
- Editado Luiz Fernando Ferreira terça-feira, 5 de abril de 2011 21:40
Respostas
-
Eu postei meu código, quero apenas passa valores do DB para variáveis, para manipula-las posteriormente.
Troca este if. Esta mal
Tens de fazer assim
if (dr.HasRow())
{
While(dr.Read())
{
Tipos tipos = new Tipos(); tipos.AccountID = (int)dr["id_usuario"].ToString(); tipos.Username = (string)dr["usuario"].ToString(); tipos.Senha = (string)dr["senha"].ToString(); tipos.UltimoLogin = (DateTime)dr["ultimo_login"].ToString(); autenticado = true; dr.Close();
conn.Close(); } catch (Exception e) { autenticado = false; System.Windows.Forms.MessageBox.Show(e.Message.ToString()); }
else
{
System.Windows.Forms.MessageBox.Show("Nao existe informacao no seu datareader");
return autenticado; } } }
Just Be Humble Malange!- Marcado como Resposta Luiz Fernando Ferreira quinta-feira, 7 de abril de 2011 01:58
Todas as Respostas
-
Se voce quer visualizar tens de chamar o procedimento ou a funcao num datagridview etc...
public List<Tabela_Copy> Carregarr()
{
List<Tabela_Copy> informacao = new List<Tabela_Copy>();
SqlCommand command = new SqlCommand("Select * From Table_Copy", this.sqlCn);
SqlDataAdapter adpter = new SqlDataAdapter(command);
DataTable dt = new DataTable();
adpter.Fill(dt);
{
foreach (DataRow dr in dt.Rows)
{
Tabela_Copy Encher = new Tabela_Copy();
Encher.Primeiro_Nome = (string)dr["FirstName"].ToString();
Encher.Ultimo_Nome = (string)dr["LastName"].ToString();
Encher.Endereco = (string)dr["Address"].ToString();
Encher.Auto_Number = (string)dr["IDD"].ToString();
informacao.Add(Encher);
}
}
return informacao;
}
Estiver numa class entao chamas assim:
minhaclass dl = new minhaclass();
this.dataGridView1.DataSource = dl.Carregarr();
Just Be Humble Malange!- Sugerido como Resposta Luiz Estevam terça-feira, 5 de abril de 2011 16:43
-
-
Bom na verdade eu queria que os dados do BD passassem para uma variável, que ao longo do programa eu pudesse altera-lá ou etc.
Se voce quer fazer isto tens de usar: SqlDataAdapter;
Voce pode carregar a informacao num dataset com SqlDataAdapter e manipular quando quizeres ou alterar quando bem entenderes.
Just Be Humble Malange! -
-
Eu postei meu código, quero apenas passa valores do DB para variáveis, para manipula-las posteriormente.
Troca este if. Esta mal
Tens de fazer assim
if (dr.HasRow())
{
While(dr.Read())
{
Tipos tipos = new Tipos(); tipos.AccountID = (int)dr["id_usuario"].ToString(); tipos.Username = (string)dr["usuario"].ToString(); tipos.Senha = (string)dr["senha"].ToString(); tipos.UltimoLogin = (DateTime)dr["ultimo_login"].ToString(); autenticado = true; dr.Close();
conn.Close(); } catch (Exception e) { autenticado = false; System.Windows.Forms.MessageBox.Show(e.Message.ToString()); }
else
{
System.Windows.Forms.MessageBox.Show("Nao existe informacao no seu datareader");
return autenticado; } } }
Just Be Humble Malange!- Marcado como Resposta Luiz Fernando Ferreira quinta-feira, 7 de abril de 2011 01:58