日期:2014-05-17  浏览次数:20429 次

我是个菜鸟 能不能帮我看看为什么不会跳转Admin页面
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);
        }
求助

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



------解决方案--------------------
引用:
2楼的哥哥 我的数据库 一个是UserName nchar(10)字段 一个是PassWord nchar(10)而且就一个数据 Admin 123456,应该没有错啊

那就是我说的啊,改成varchar(10)。
------解决方案--------------------
最简单的是用goodsoft的方法ToString().Trim().Equals(admin)来判断。

还有个问题就是,如果直接Redirect,会导致数据库未关闭。最终可能会导致连接池满的结果。
------解决方案--------------------

至于你在那里怎么调用方法过去你应该知道了把.