Как это сделать, если (count == 1), чтобы он делал то же самое, что и в данный момент, но вместо того, чтобы скрывать, закрыть и открыть другую форму (e.x form2)?if (count == 1) закрыть эту форму и открыть форму2, как?
Я пробовал this.Close(); но он закончил закрытие программы до того, как будет запущен код для открытия новой формы.
private void button1_Click(object sender, EventArgs e)
{
try
{
string myConnection = "datasource=localhost;port=3306;username=dolfin;password=quack";
MySqlConnection myConn = new MySqlConnection(myConnection);
MySqlCommand SelectCommand = new MySqlCommand("select * from database1.logins where username='" + this.username_txt.Text + "' and password='" + this.password_txt.Text + "' ;", myConn);
MySqlDataReader myReader;
myConn.Open();
myReader = SelectCommand.ExecuteReader();
int count = 0;
while (myReader.Read())
{
count = count + 1;
}
if (count == 1)
{
MessageBox.Show("Username and password is correct.");
this.Hide();
Form2 f2= new Form2();
f2.ShowDialog();
}
else if (count > 1)
{
MessageBox.Show("Duplicate Username and Password... Access Denied!");
}
else
MessageBox.Show("Username and password is not correct... please try again.");
myConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Ваш код уязвим для SQL-инъекции. – Dai
Закрытие основной формы закончит цикл сообщения, код выйдет из 'Application.Run (yourMainForm);' Вам не нужно закрывать форму, скрывая ее достаточно, не думайте, что это пустая трата памяти , Я думаю, это не стоит упоминать здесь. –
Мне нужно, чтобы закрыть tho, это нормально, если сообщение не появляется. – user3024598