Example #1
0
        //open a knew window that allow the user to edit the selected package
        private void btnEdit_Click(object sender, EventArgs e)
        {
            Package editedPackage = null;
            Package oldPackage    = null;

            foreach (DataGridViewRow row in dgvPackages.SelectedRows)
            {
                editedPackage = new Package(Convert.ToInt32(row.Cells[0].Value.ToString()),
                                            row.Cells[1].Value.ToString(),
                                            (DateTime?)row.Cells[2].Value,
                                            (DateTime?)row.Cells[3].Value,
                                            row.Cells[4].Value.ToString(),
                                            Convert.ToDecimal(row.Cells[5].Value.ToString()),
                                            (decimal?)(row.Cells[6].Value));
            }

            frmEditPackage newForm = new frmEditPackage();

            oldPackage    = (Package)editedPackage.Clone();
            editedPackage = newForm.GetEditPackage(editedPackage);


            try
            {
                if (!PackageDB.UpdatePackage(oldPackage, editedPackage))
                {
                    MessageBox.Show("Another user has updated or " +
                                    "deleted that customer.", "Database Error");
                }
                else
                {
                    selectedId = editedPackage.PackageId;
                    packages   = PackageDB.GetAllPackages();
                    UpdateBinding();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, ex.GetType().ToString());
            }

            txtPkgName.Clear();

            //set the modified row to be selected
            dgvPackages.ClearSelection();
            int rowIndex = -1;

            foreach (DataGridViewRow row in dgvPackages.Rows)
            {
                if (row.Cells[0].Value.ToString().Equals(selectedId.ToString()))
                {
                    rowIndex = row.Index;
                    break;
                }
            }
            dgvPackages.Rows[rowIndex].Selected         = true;
            dgvPackages.FirstDisplayedScrollingRowIndex = rowIndex;
        }