Hola, pues revisando bien tu codigo hay varios problemas, por ejemplo:
string cadena = ("SELECT * FROM usuario WHERE nusuario == +usuario.Text And contraseña == +contraseña.Text");
esto daría resultado :
Suponiendo que usuario.Text = hola y contrtaseña.text = pass
SELECT *FROM usuario WHERE nusuario = hola and contraseña = pass como verás esta sintaxis esta mal, ya que los valores de caracteres en SQL van con una comilla
SELECT *FROM usuario WHERE nusuario =
'hola
' and contraseña =
'pass
'
en fin, hice un código de validación de password, que te aseguro que funciona bien, ya que yo mismo ,lo probé, luego lo adapte a tu circunstancia...:
1.- Borra todo, cuando hablo de todo es borrar primeramente las variables publicas que cada vez que entras en la página se crrearán (muy poco optimizado):
Código ASP:
Ver originalpublic const string cad = @"Data Source=.\SQLEXPRESS;AttachDbFilename= C:\Documents and Settings\MARIO\Mis documentos\Visual Studio 2008\WebSites\ProgramaAlmacen\Almacen.mdf;Integrat ed Security=True;Connect Timeout=30;User Instance=True";
SqlConnection conexion;
SqlCommand comando;
Eso borra,
Luego borra la función completa de conectar();
Código ASP:
Ver originalpublic void conectar()
{
try
{
conexion = new SqlConnection(cad);
conexion.Open();
}
catch
{
}
}
eso, te recomiendo no usar mucho el try, ya que también consume recursos....
y por ultimo deja completamente vacio el procedimiento o fucnion del boton entrar, osea Button1_Click
y reemplazalo por este otro (hize yo):
Código ASP:
Ver originalprotected void Button1_Click(object sender, EventArgs e)
{
string cad = @"Data Source=.\SQLEXPRESS;AttachDbFilename= C:\Documents and Settings\MARIO\Mis documentos\Visual Studio 2008\WebSites\ProgramaAlmacen\Almacen.mdf;Integrat ed Security=True;Connect Timeout=30;User Instance=True";
string cadena = "SELECT * FROM usuario WHERE nusuario = '"+usuario.Text+"'";
SqlConnection conexion = new SqlConnection(cad);
conexion.Open();
SqlCommand comando = new SqlCommand(cadena, conexion);
comando.ExecuteNonQuery();
SqlDataReader dr;
dr = comando.ExecuteReader();
if (dr.Read())
{
if (dr.HasRows)
{
string password = dr["contraseña"].ToString();
password = password.Trim();
if (password == contraseña.Text)
{
Response.Redirect("PaginaPrin.aspx");
}
else
Error();
}
else
{
Error();
}
}
else
Error();
conexion.Close();
}
}
y luego creas esta funcion de error:
Código ASP:
Ver originalprivate void Error()
{
Label6.Visible = true;
Label7.Visible = true;
}
saludos.
se me olvido decir que la instriuccion que te pasé es mucho más segura ya que valida si la password de la bd con el que el usuario coloco son las mismas.