#c# #function
Вопрос:
У меня есть кнопка удаления, которая удаляет записи из базы данных. Мне нужно добавить всплывающую форму «Введите свой пароль», чтобы предотвратить случайное удаление пользователей. Только администратор, у которого есть пароль, сможет удалить данные.
Вот мой код кнопки:
private void btnDelete_Click(object sender, EventArgs e) { if (MessageBox.Show("If you are not a System Administrator Please do not touch.", "Remove Row", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { using (SqlConnection sqlCon = new SqlConnection(connectionString)) { sqlCon.Open(); SqlCommand sqlCmd = new SqlCommand("ContactDeleteByID", sqlCon); sqlCmd.CommandType = CommandType.StoredProcedure; sqlCmd.Parameters.AddWithValue("@PhoneBookID", PhoneBookID); sqlCmd.ExecuteNonQuery(); MessageBox.Show("Deleted Successfully"); Clear(); GridFill(); } } else { MessageBox.Show("Row Not Removed", "Remove Row", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
Большое спасибо.
Комментарии:
1. Ваш вопрос в том, как запросить этот пароль? Вы хотите использовать стандартное диалоговое окно или пользовательскую форму?
Ответ №1:
Создайте несколько новых окон для авторизации и используйте Window.ShowDialog()
метод
private void btnDelete_Click(object sender, RoutedEventArgs e) { var auth = new AuthWindow(); auth.ShowDialog(); if (auth.IsAdmin) { //do smth } else { MessageBox.Show("Row Not Removed", "Remove Row", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
AuthWindow.cs
private void btnOk_Click(object sender, RoutedEventArgs e) { isAdmin = tb.Text == "SomePass"; this.Hide(); }