private void btnundo_Click(object sender, EventArgs e)
 {
     listindex = listindex - 1;
     if (listindex >= 0 && listindex == presentindex)
     {
         DGVNhanVien.DataSource = dtblist[listindex];
         string sql = "delete NHAN_VIEN";
         Ctrl.RunSqlDel(sql);
         DataGridViewRow dgr;
         for (int i = 0; i < DGVNhanVien.RowCount; ++i)
         {
             dgr = DGVNhanVien.Rows[i];
             sql = "insert into NHAN_VIEN values('" + dgr.Cells["IdNV"] + "', '" + dgr.Cells["TenNV"] + "', '" + dgr.Cells["NgaySinh"] + "', '" + dgr.Cells["Gioitinh"] + "', '" + dgr.Cells["DiaChi"] + "', '" + dgr.Cells["SĐT"] + "', '" + dgr.Cells["Chucvu"] + "', '" + dgr.Cells["Taikhoan"] + "')";
             Ctrl.RunSQL(sql);
         }
         presentindex = listindex;
     }
     else if (listindex >= 0 && listindex != presentindex)
     {
         DGVNhanVien.DataSource = dtblist[presentindex];
         string sql = "delete NHAN_VIEN";
         Ctrl.RunSqlDel(sql);
         DataGridViewRow dgr;
         for (int i = 0; i < DGVNhanVien.RowCount; ++i)
         {
             dgr = DGVNhanVien.Rows[i];
             sql = "insert into NHAN_VIEN values('" + dgr.Cells["IdNV"] + "', '" + dgr.Cells["TenNV"] + "', '" + dgr.Cells["NgaySinh"] + "', '" + dgr.Cells["Gioitinh"] + "', '" + dgr.Cells["DiaChi"] + "', '" + dgr.Cells["SĐT"] + "', '" + dgr.Cells["Chucvu"] + "', '" + dgr.Cells["Taikhoan"] + "')";
             Ctrl.RunSQL(sql);
         }
         presentindex = listindex;
     }
 }
        private void btnxoa_Click(object sender, EventArgs e)
        {
            string sql;

            if (tc.Rows.Count == 0)
            {
                MessageBox.Show("Không còn dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (txtmatc.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa chọn bản ghi nào", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (MessageBox.Show("Bạn có muốn xoá bản ghi này không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                sql = "DELETE TRUY_CAP WHERE IdTC='" + txtmatc.Text + "'";
                Ctrl.RunSqlDel(sql);
                LoadDataGridView();
                ResetValues();
                btnxoa.Enabled    = false;
                DANGNHAP.thaotac += "Xoá, ";
            }

            sql = "SELECT * from TRUY_CAP";
            Ctrl.FillCombo(sql, cbTenTK, "TenTK", "TenTK");
            cbTenTK.SelectedIndex = -1;

            lblkqtktc.Text = "(*) Tìm kiếm theo 'tên tài khoản'!";
        }
        private void btnxoatatca_Click(object sender, EventArgs e)
        {
            string sql;

            if (tc.Rows.Count == 0)
            {
                MessageBox.Show("Không còn dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (MessageBox.Show("Bạn có chắc chắn muốn xoá tất cả bản ghi không?", "Warning!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                sql = "DELETE TRUY_CAP";
                Ctrl.RunSqlDel(sql);
                LoadDataGridView();
                ResetValues();
                btnxoa.Enabled    = false;
                DANGNHAP.thaotac += "Xoá tất cả, ";
            }
            else
            {
                return;
            }

            sql = "SELECT * from TRUY_CAP";
            Ctrl.FillCombo(sql, cbTenTK, "TenTK", "TenTK");
            cbTenTK.SelectedIndex = -1;

            lblkqtktc.Text = "(*) Tìm kiếm theo 'tên tài khoản'!";
        }
        private void btnXoa_Click(object sender, EventArgs e)
        {
            string sql;

            if (nv.Rows.Count == 0)
            {
                MessageBox.Show("Không còn dữ liệu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (txtMaNhanVien.Text == "")
            {
                MessageBox.Show("Bạn chưa chọn bản ghi nào", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (MessageBox.Show("Xoá nhân viên sẽ xoá tất cả dữ liệu của người dùng và tất cả các thông tin truy cập có liên quan với nhân viên (người dùng) này.Bạn có muốn xóa không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
            {
                List <string> idnd = new List <string>();

                sql = "select * from NGUOI_DUNG where IdNV ='" + DGVNhanVien.CurrentRow.Cells["IdNV"].Value.ToString() + "'";
                DataRow dr;
                for (int i = 0; i < Ctrl.GetDataToTable(sql).Rows.Count; ++i)
                {
                    dr = Ctrl.GetDataToTable(sql).Rows[i];
                    idnd.Add(dr["IdND"].ToString());
                }

                foreach (string items in idnd)
                {
                    sql = "DELETE TRUY_CAP WHERE IdND='" + items + "'";
                    Ctrl.RunSqlDel(sql);

                    sql = "DELETE NGUOI_DUNG WHERE IdND='" + items + "'";
                    Ctrl.RunSqlDel(sql);
                }

                sql = "DELETE NHAN_VIEN WHERE IdNV='" + DGVNhanVien.CurrentRow.Cells["IdNV"].Value.ToString() + "'";
                Ctrl.RunSqlDel(sql);
                LoadDataGridView();

                //sql = "select * from NHAN_VIEN";
                //dtblist.Add(Ctrl.GetDataToTable(sql));
                //listindex = dtblist.Count - 1;
                ResetValues();
                btnBoqua.Enabled  = false;
                DANGNHAP.thaotac += "Xoá, ";
            }
        }
        private void btnSua_Click(object sender, EventArgs e)
        {
            string sql, gt;

            if (nv.Rows.Count == 0)
            {
                MessageBox.Show("Không còn dữ liệu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (txtMaNhanVien.Text == "")
            {
                MessageBox.Show("Bạn chưa chọn bản ghi nào", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (txtTenNhanVien.Text.Trim().Length == 0)
            {
                MessageBox.Show("Bạn phải nhập tên nhân viên", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtTenNhanVien.Focus();
                return;
            }
            if (txtDiaChi.Text.Trim().Length == 0)
            {
                MessageBox.Show("Bạn phải nhập địa chỉ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtDiaChi.Focus();
                return;
            }
            if (mskDienthoai.Text.Trim() == "")
            {
                MessageBox.Show("Bạn phải nhập số điện thoại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                mskDienthoai.Focus();
                return;
            }
            if (cbchucvu.Text.Trim().Length == 0)
            {
                MessageBox.Show("Bạn phải nhập chức vụ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cbchucvu.Focus();
                return;
            }

            if (chkGioitinh.Checked == true)
            {
                gt = "Nam";
            }
            else
            {
                gt = "Nữ";
            }
            //mã nhân viên đã thay đổi so với ban đầu do đổi nhóm nhân viên của nv hiện tại
            if (txtMaNhanVien.Text.Substring(0, 3) != DGVNhanVien.CurrentRow.Cells["IdNV"].Value.ToString().Substring(0, 3))
            {
                //gọi lại sự kiện cbchucvu_Leave để kiểm tra chức vụ hợp lý không
                cbchucvu_Leave(sender, e);

                if (ktcv == true)
                {
                    sql = "INSERT INTO NHAN_VIEN VALUES ('" + txtMaNhanVien.Text + "',N'" + txtTenNhanVien.Text.Trim() + "','" + dtpNgaySinh.Value.ToShortDateString() + "',N'" + gt + "',N'" + txtDiaChi.Text.Trim() + "','" + mskDienthoai.Text.Trim() + "',N'" + cbchucvu.Text.Trim() + "','" + txttaikhoan.Text.Trim() + "')";
                    Ctrl.RunSQL(sql);

                    //cập nhật lại mã nhân viên trên bảng Người dùng
                    List <string> idnd = new List <string>();

                    sql = "select * from NGUOI_DUNG where IdNV ='" + DGVNhanVien.CurrentRow.Cells["IdNV"].Value.ToString() + "'";
                    DataRow dr;
                    for (int i = 0; i < Ctrl.GetDataToTable(sql).Rows.Count; ++i)
                    {
                        dr = Ctrl.GetDataToTable(sql).Rows[i];
                        idnd.Add(dr["IdND"].ToString());
                    }

                    foreach (string items in idnd)
                    {
                        sql = "UPDATE NGUOI_DUNG SET IdNV='" + txtMaNhanVien.Text.Trim() + "' WHERE IdND='" + items + "'";
                        Ctrl.RunSQL(sql);
                    }


                    sql = "DELETE NHAN_VIEN WHERE IdNV = '" + DGVNhanVien.CurrentRow.Cells["IdNV"].Value.ToString() + "'";
                    Ctrl.RunSqlDel(sql);

                    LoadDataGridView();
                    sql = "select * from NHAN_VIEN";
                    dtblist.Add(Ctrl.GetDataToTable(sql));
                    listindex = dtblist.Count - 1;

                    ResetValues();
                    btnBoqua.Enabled  = false;
                    ktcv              = false;
                    DANGNHAP.thaotac += "Sửa, ";
                }
            }
            else
            {
                //gọi lại sự kiện cbchucvu_Leave để kiểm tra chức vụ hợp lý không
                cbchucvu_Leave(sender, e);
                if (ktcv == true)
                {
                    sql = "UPDATE NHAN_VIEN SET TenNV=N'" + txtTenNhanVien.Text.Trim() +
                          "',NgaySinh='" + dtpNgaySinh.Value.ToShortDateString() +
                          "',Gioitinh=N'" + gt + "',DiaChi=N'" + txtDiaChi.Text.Trim() + "', SĐT = '" + mskDienthoai.Text.Trim() + "',ChucVu=N'" + cbchucvu.Text.Trim() + "' WHERE IdNV='" + DGVNhanVien.CurrentRow.Cells["IdNV"].Value.ToString() + "'";
                    Ctrl.RunSQL(sql);
                    LoadDataGridView();
                    sql = "select * from NHAN_VIEN";
                    dtblist.Add(Ctrl.GetDataToTable(sql));
                    listindex = dtblist.Count - 1;

                    ResetValues();
                    btnBoqua.Enabled  = false;
                    ktcv              = false;
                    DANGNHAP.thaotac += "Sửa, ";
                }
            }
        }