У меня есть простая форма C # windows, которая действует как логин, но также имеет форму для изменения пароля пользователя.
Когда вы нажимаете «Изменить пароль», форма загружается с текстовым полем текущего пароля, новым проходом и подтверждением нового прохода и одной кнопкой сохранения.
Я сохранил имя пользователя в метке, чтобы можно было проверить текущий пароль, если он действителен из базы данных или нет.
Я храню их в таблице, созданной в Microsoft SQL Server 2008.
Код выглядит следующим образом.
SqlConnection connect = new SqlConnection(str);
connect.Open();
string username = label_username.Text;
string password = textBox_Current.Text;
string newPassword = textBox_New.Text;
string confirmPassword = textBox_Verify.Text;
string sqlquery = "UPDATE [Member] SET Password=@newpass where Username=@username";
SqlCommand cmd = new SqlCommand(sqlquery, connect);
cmd.Parameters.AddWithValue("@newpass", textBox_Verify.Text);
cmd.Parameters.AddWithValue("@username", label_username.Text);
cmd.Parameters.AddWithValue("@password", textBox_Current.Text);
cmd.Connection = connect;
cmd.ExecuteNonQuery();
sqlDataReader reader = null;
reader = cmd.ExecuteReader();
while (reader.Read())
{
if ((textBox_New.Text == reader["newPassword"].ToString()) & (textBox_Verify.Text == (reader["confirmPassword"].ToString()))) { }
}
MessageBox.Show("Password Changed Successfully!");
this.Close();
При выполнении вышеуказанного кода, пароль меняется, но я хочу:
- проверить правильность, например, если пользователь ввел неправильный пароль в текущем пароле.
- новый пароль и подтверждение пароля.
- когда пользователь нажимает на первое сохранение, нижний пустой пароль не должен храниться в базе данных, а должен давать сообщение «пожалуйста, введите пароль»
Как это можно сделать?