string admin=txtName .Text .Trim ();
        string passWord=txtPassWord .Text .Trim ();
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = "Data Source=.;Initial Catalog=Admin;Integrated Security=True";
        try
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "SELECT * FROM  Administrator";
            cmd.Connection = conn;
            SqlDataReader data;
            data = cmd.ExecuteReader();
            while (data.Read())
            {
                if (data.GetValue(0).ToString() == admin && data.GetValue(1).ToString() == passWord)
                {
                    Response.Redirect("Admin.aspx"); 
                }
            }
            data.Close();
            conn.Dispose();
        }
        catch (SqlException ex)
        {
            Response.Write(ex.Message);
        }求助

解决方案 »

  1.   

    有一种可能,就是数据库中的用户名和密码字段设成定长的char型了,要改成varchar型。char型长度不够会自动填充空格补足长度。
      

  2.   

    2楼的哥哥 我的数据库 一个是UserName nchar(10)字段 一个是PassWord nchar(10)而且就一个数据 Admin 123456,应该没有错啊
      

  3.   

    加多一个trim()函数试试,可能是有空格影响
     if (data.GetValue(0).ToString().trim() == admin && data.GetValue(1).ToString().trim() == passWord)
      

  4.   

    那就是我说的啊,改成varchar(10)。
      

  5.   

    最简单的是用goodsoft的方法ToString().Trim().Equals(admin)来判断。还有个问题就是,如果直接Redirect,会导致数据库未关闭。最终可能会导致连接池满的结果。
      

  6.   

    谢谢各位哥哥 我知道错出在哪里了 输入用户Admin多了一个空格,谢谢四楼的哥哥所教的方法,虽然我还没有试过