由于一些奇怪的原因,我的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();
}
}
}`
答案 0 :(得分:0)
固定。这是正确的代码。
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();