Если результаты не возвращаются из базы данных, тогда ваша ссылка никогда не будет установлена на видимую, потому что dr.Read () вернет false. Что то, что происходит с тобой сейчас.
Что вам нужно сделать, так как я считаю, что ваш запрос всегда будет возвращать только один результат - просто сделать
SqlCommand selectuser = new SqlCommand("select username,password from users where username = '" + TextBox1.Text + "' and password = '" + TextBox2.Text + "'", badersql);
SqlDataReader dr = null;
try
{
dr = selectuser.ExecuteReader();
Label1.Visible = !dr.Read();
}
finally
{
if (dr != null)
dr.Close();
}
и вам пора.
Теперь несколько советов, вы уже выполняете фильтрацию на сервере sql, так что вы можете просто сделать Select 1 from ...
и command.ExecuteScalar() != null
Если вы по-прежнему хотите использовать DataReader по другой причине, вам следует использовать блок try {...} finally { dr.close(); }
, чтобы гарантировать, что устройство чтения данных не останется открытым при возникновении необработанной ошибки.