Пример #1
0
        private void изменитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            UserUpdate frmUserUpdate = new UserUpdate(UserUpdate.State.Update, _sConnStr);

            foreach (ListViewItem selectedItem in lvUsers.SelectedItems)
            {
                var oldLogin = selectedItem.SubItems[0].Text;

                frmUserUpdate.Login            = oldLogin;
                frmUserUpdate.Passwprd         = "";
                frmUserUpdate.RegistrationDate = (DateTime)selectedItem.Tag;
                frmUserUpdate.BtOk             = true;

                string password = "";

                if (frmUserUpdate.ShowDialog() == DialogResult.OK)
                {
                    using (var sConn = new SqlConnection(_sConnStr))
                    {
                        sConn.Open();
                        SqlCommand sCommand;

                        if (frmUserUpdate.Passwprd == "")
                        {
                            sCommand = new SqlCommand
                            {
                                Connection  = sConn,
                                CommandText = @"UPDATE Users SET login = @Login, registerDate = @RegistrationDate
                                               WHERE  login = @oldLogin"
                            };
                        }
                        else
                        {
                            sCommand = new SqlCommand
                            {
                                Connection  = sConn,
                                CommandText = @"UPDATE Users SET login = @Login, password = @Password, 
                                                                 salt = @Salt,  registerDate = @RegistrationDate
                                               WHERE  login = @oldLogin"
                            };
                            var salt = GenerateSalt();
                            password = CalcHash(frmUserUpdate.Passwprd + salt);

                            sCommand.Parameters.AddWithValue("@Password", password);
                            sCommand.Parameters.AddWithValue("@Salt", salt);
                        }
                        sCommand.Parameters.AddWithValue("@oldLogin", oldLogin);
                        sCommand.Parameters.AddWithValue("@Login", frmUserUpdate.Login);
                        sCommand.Parameters.AddWithValue("@RegistrationDate", frmUserUpdate.RegistrationDate);

                        sCommand.ExecuteNonQuery();

                        selectedItem.SubItems[0].Text = frmUserUpdate.Login;
                        if (password != "")
                        {
                            selectedItem.SubItems[1].Text = password;
                        }
                        selectedItem.SubItems[2].Text = frmUserUpdate.RegistrationDate.ToLongDateString();
                        lvUsers.Tag = frmUserUpdate.RegistrationDate;
                    }
                }
            }
        }