Asp.net SQLdatareader while循环不断被忽略

本文关键字:循环 net SQLdatareader while Asp | 更新日期: 2023-09-27 18:28:59

由于一些奇怪的原因,我的while循环被完全忽略了。临界点表明,它至少正在达到它,但甚至没有试图进入其中。我可能错过了一些简单化的东西。

namespace website
{
public partial class Account : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Login_Click1(object sender, EventArgs e)
    {
        pullfrom();
    }

    private void pullfrom()
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = @"Data Source=WSERV2012CNTRLR'SQLEXPRESS,1433; Initial Catalog=Dackup; User ID=user; Password=password"; 
        string username = user.Text.ToString();
        string password = pass.Text.ToString(); //Clients username and password     
        try
        {
            con.Open();
        }
         catch
        {
            correct.Text = "Not able to connect. Please try again in 5 minutes".ToString();
            correct.Visible = true; 
        }
        SqlCommand command = new SqlCommand("Select * from dackupinfo where username=@username and password=@password;", con);
        command.Parameters.Add("@username", SqlDbType.VarChar).Value = username;
        command.Parameters.Add("@password", SqlDbType.VarChar).Value = password;
        SqlDataReader reader = command.ExecuteReader();
        while(reader.Read()) // Continues without going into the while loop.
        {
            // Console.WriteLine(reader["susername"].ToString());
            // Console.WriteLine(reader["spassword"].ToString()); //sftpserver/username
            string finder = reader["username"].ToString();
            if (finder == null)
            {
                correct.Text = "Incorrect Credentials".ToString(); // Need to look into; as I can't get it to work. 
                correct.Visible = true;
            }
            if (finder != null)
            {
                Response.Redirect("UserCenter.aspx");
            }
            reader.Close();
        }
        con.Close();

    }

}

}`

Asp.net SQLdatareader while循环不断被忽略

已修复。这是正确的代码。

         SqlDataReader reader = command.ExecuteReader();
        if (reader.Read())
        {
            if (reader != null)
            {
                Response.Redirect("UserCenter.aspx");
            }
        }
            else
            {
                correct.Text = "Incorrect Credentials".ToString(); 
                correct.Visible = true;
            }
        reader.Close();
        con.Close();