Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiego Douglas

[Resolvido] Data Reader

Recommended Posts

Pessoal, segue abaixo meu código fonte, trata -se de uma rotina par fazer login, o problema é que o meu objeto datareader não esta lendo...

alguem pode me ajudar ? :unsure:

 

 

public partial class login2 : System.Web.UI.Page
{

	protected void Button1_Click(object sender, EventArgs e)
	{
		string strusuario;
		string strsenha;
		
		//criei a conexão
		SqlConnection Con = new SqlConnection();
			Con.ConnectionString = @"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\tmedeiros\Desktop\meu projeto\banco.mdb ";

		  //abri conexão
		Con.Open();


		SqlCommand Cmd = Con.CreateCommand();

		Cmd.CommandText = @"SELECT TRIN(NOME), TRIN(SENHA) FROM LOGON WHERE NOME = '" + txtnome.Text+ "' ";



		//O Datareader é utilizado somente para leitura de dados, de forma conectada, onde ele percorre
		//o arquivo de dados até o fim utilizando a função READ, e devolve os dados lidos para o uso na 
		//sua aplicação, mas sem a possibilidade de poder modificá-los de forma rápida, e consome menos
		//recursos de memória do servidor de dados, evitando o chamado “override”.

		
		//criei o datareader
		SqlDataReader dtr;

	 



	   // DataTable dtab = new DataTable();
	   // dtab.Load(Cmd.ExecuteReader());


				
		try
		{
								   
				 strusuario = [color="#FF0000"]dtr[/color].Read().ToString;
				 strsenha = [color="#FF0000"]dtr[/color].Read().ToString;
			

			if(txtnome.Text != strusuario)
			 {
			   Label5.Text = strusuario +("não é um usuario valido...");			
			 }

			if (txtnome.Text != strsenha)
			 {
			  Label5.Text =("Senha invalida...");
			 }				   
		 
			else
			 {
			 Label5.Text = ("Seja bem vindo!");
				Panel1.Visible = false;
				Panel2.Visible = true;
			}		

		}

		catch
		{
	   Label5.Text =("Você não possui acesso a essa área");
			
		   Con.Close();
			dtr.Close();

		}

	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca de:

strusuario = dtr.Read().ToString;
strsenha = dtr.Read().ToString;

Para:

 

if (dtr.Read())
{
strusuario = dtr.GetValue(0).ToString();
strusuario = dtr.GetValue(1).ToString();
}

Att,

Guilherme Oenning

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications

 

 

Oi, eu fiz o que você sugeriu, porém as váriaveis em destaque (vermelho) ainda não estão reconhecidas... o que devo fazer ? :rolleyes:

 

try
		{

			if (dtrRead())
			{
				strusuario = dtr.GetValue(0).ToString();
				strsenha = dtr.GetValue(1).ToString();
			}

			if(txtnome.Text != strusuario)
			 {
			   Label5.Text = strusuario +("não é um usuario valido...");			
			 }

			if (txtnome.Text != strsenha)
			 {
			  Label5.Text =("Senha invalida...");
			 }				   
		 
			else
			 {
			 Label5.Text = ("Seja bem vindo!");
				Panel1.Visible = false;
				Panel2.Visible = true;
			}		

		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você declarou a variavel SqlDataReader dtr mas não atribuiu ela em nenhum lugar, e pelo visto você usou.

tenta ali SqlDataReader dtr = Cmd.ExecuteReader();

 

Att,

Guilherme Oenning

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você declarou a variavel SqlDataReader dtr mas não atribuiu ela em nenhum lugar, e pelo visto você usou.

tenta ali SqlDataReader dtr = Cmd.ExecuteReader();

 

Att,

Guilherme Oenning

 

 

Oi Guilherme, realmente, a variavel dtr (datareader recebeu o valor) deu certo, Porém as duas outras variaveis:

strusuario e strsenha ainda apresentam erro! o que pode ser ?

Obrigado pela ajuda!!! http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

------------------------------

 

try
		{

			if (dtr.Read())
			{
				strusuario = dtr.GetValue(0).ToString();
				strsenha = dtr.GetValue(1).ToString();
			}

			if(txtnome.Text != strusuario)
			 {
			   Label5.Text = strusuario +("não é um usuario valido...");			
			 }

			if (txtnome.Text != strsenha)
			 {
			  Label5.Text =("Senha invalida...");
			 }				   
		 
			else
			 {
			 Label5.Text = ("Seja bem vindo!");
				Panel1.Visible = false;
				Panel2.Visible = true;
			}		

		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

a strusuario e a srtsenha fica sublinhado,

...então eu acabei de tentar coloca-las entre aspas

 

try
		{

			if (dtr.Read())
			{
				strusuario = dtr.GetValue(0).ToString();
				strsenha = dtr.GetValue(1).ToString();
			}

			if(txtnome.Text != "strusuario"[/color])
			 {
			   Label5.Text = "strusuario" +("não é um usuario valido...");			
			 }

			if (txtsenha.Text != "strsenha")
			 {
			  Label5.Text =("Senha invalida...");
			 }

 

Quando coloquei entre aspas, o sublinhado de erro sumiu!

 

no entanto deu erro na string de conexão!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, quando você deixa o mouse sobre o sublinhado, qual a mensagem de erro?

Quanto a string de conexão, é provider e não rovider.

 

Att,

Guilherem Oenning.

Compartilhar este post


Link para o post
Compartilhar em outros sites

...é eu já havia alterado de Rovider para Provider foi erro na hora do (ctr+c - ctr+v)

...então, nada de dar certo, e se eu trabalhar com datatable?

 

...como ficaria essa rotina com datatable?

 

Mais pocha perai... trabalhar com o DataReader exige tanta filosofia assim ? O que será que está acontecendo ?

 

...em minha lógica, o algoritimo tem que ser escrito com DataReader mesmo...

 

(((((((((vou continuar tentando)))))))))))

Compartilhar este post


Link para o post
Compartilhar em outros sites

(((((((((((((((( consegui !!!!!!!!!!))))))))))))))))))

 

FALTAVA COLOCAR UM VALOR INICIAL PARA A VARIAVEL!!!!!

 

VEJAM:

 

SUBLINHADO VERMELHO ERA O ERRO

SUBLINHADO AZUL FOI A CORREÇÃO!

 

BEM, SEGUE ENTÃO UM ALGORITIMO QUE REALIZA DE FORMA BEM SIMPLES A TEREFA DE REALIZAR A VALIDAÇÃO DE LOGIN E SENHA BUSCANDO DO BANCO DE DADOS...

 

 

PORÉM ESSE ALGORITIMO SERVE APENAS COMO UM APRENDIZADO INICIAL, A MANEIRA CORRETA DE SE FAZER ISSO É CRIANDO OU UMA REFERENCIA NO WEB CONNFIG MESMO OU ENTÃO UMA CLASSE QUE PODE FICAR NO APP_DATA

 

NUNCA COLOQUEM A STRING DE CONEÇÃO NA PÁGINA! É ERRADO! é UM PRATO CHEIO PARA INVASÃO!

 

FICA O CONVITE PARA ALGUÉM COLOCAR A MANEIRA CORRETA DE REALIZAR ESSA TAREFA.

QUEM PODE COLOCAR ?

 

--------------------

protected void Button1_Click(object sender, EventArgs e)

{

 

 

//criei a conexão

OleDbConnection Con = new OleDbConnection();

Con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\tmedeiros\Desktop\meu projeto\banco.mdb";

 

 

OleDbCommand Cmd = Con.CreateCommand();

 

Cmd.CommandText = @"SELECT NOME, SENHA FROM LOGON WHERE NOME = '" + txtnome.Text+ "' ";

 

//abri conexão

Con.Open();

 

 

Cmd.Connection = Con;

 

OleDbDataReader dtr = Cmd.ExecuteReader();

 

string string_usuario= "";

string string_senha="";

 

try

{

 

if (dtr.Read())

{

string_usuario = dtr.GetValue(0).ToString();

string_senha = dtr.GetValue(1).ToString();

}

 

if (txtnome.Text != string_usuario)

{

Label5.Text = string_usuario +("não é um usuario valido...");

}

 

if (txtsenha.Text != string_senha)

{

Label5.Text =("Senha invalida...");

}

 

else

{

Label5.Text = ("Seja bem vindo!");

Panel1.Visible = false;

Panel2.Visible = true;

}

 

}

 

catch

{

Label5.Text =("Você não possui acesso a essa área");

 

Con.Close();

dtr.Close();

 

}

 

}

------------------------------------

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.