C# 为什么我的标签不能保持不变
当我运行代码时,标签保持不变,但当我调试它时,我可以看到文本的变化,然后在运行完成后又会发生变化C# 为什么我的标签不能保持不变,c#,C#,当我运行代码时,标签保持不变,但当我调试它时,我可以看到文本的变化,然后在运行完成后又会发生变化 public void getData(string a) { SqlConnection conn = new SqlConnection(@"Data Source=MASSI\FABERSERVER;Initial Catalog=Data.mdf;Integrated Security=True"); conn.Open(); SqlCommand command
public void getData(string a)
{
SqlConnection conn = new SqlConnection(@"Data Source=MASSI\FABERSERVER;Initial Catalog=Data.mdf;Integrated Security=True");
conn.Open();
SqlCommand command = new SqlCommand("Select UserID,UserName,Email FROM Login Where UserName= '" + a + "'", conn);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
label1.Text = reader["UserID"].ToString();
label2.Text = reader["UserName"].ToString();
label3.Text = reader["Email"].ToString();
}
conn.Close();
}
以防万一,请尝试以下方法:
public void getData(string a) {
SqlConnection conn = new SqlConnection(@"Data Source=MASSI\FABERSERVER;Initial Catalog=Data.mdf;Integrated Security=True");
conn.Open();
SqlCommand command = new SqlCommand("Select UserID,UserName,Email FROM Login Where UserName= '" + a + "'", conn);
SqlDataReader reader = command.ExecuteReader();
string id, name, email;
while (reader.Read())
{
id = reader["UserID"].ToString();
name = reader["UserName"].ToString();
email = reader["Email"].ToString();
}
conn.Close();
label1.Text = id;
label2.Text = name;
label3.Text = email;
}
}
希望有帮助。WebForms?WinForms?WPF?您可能只在1排之后。您的While循环应该在找到这一行之后退出,并且,您应该使用if reader.HasRows添加未找到该行时的逻辑。这个链接讨论了一种更好的方法:但我想它有点高级。您的应用程序对SQL注入是开放的。改用参数化查询。是否重新加载表单,然后不再调用getData?这些更改不会自动持续。