private void txtTimkiembc_TextChanged(object sender, EventArgs e)
        {
            BaocaoController bcc = new BaocaoController();
            DataTable        dt  = bcc.Searchsv(txtTimkiembc.Text);

            dgvBaocao.DataSource = dt;
            dgvBaocao.Refresh();
        }
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            var num = (from u in sv.DeTais
                       where u.ID == cbbIDDetai.SelectedValue.ToString()
                       select u.SoLanBaoCao).FirstOrDefault();
            var num1 = from t in sv.BaoCaos
                       where t.IDDeTai == cbbIDDetai.SelectedValue.ToString()
                       select t.IDDeTai;
            int b = num1.Count();

            if (cbbIDDetai.Text.Trim().Length <= 0)
            {
                this.error.SetError(cbbIDDetai, "Hãy nhập mã đề tài cho báo cáo!!!");
                return;
            }
            else if (b == (num + 1))
            {
                this.error.SetError(cbbIDDetai, "Đề tài này đã đủ số lần báo cáo!!!");
                return;
            }
            this.error.Clear();
            if (cbbLanBC.Text.Trim().Length <= 0)
            {
                this.error.SetError(cbbLanBC, "Hãy nhập lần báo cáo cho báo cáo!!!");
                return;
            }
            this.error.Clear();
            if (txtTailieu.Text.Trim().Length <= 0)
            {
                this.error.SetError(txtTailieu, "Hãy nhập tài liệu cho báo cáo!!!");
                return;
            }
            this.error.Clear();
            if (txtNhanxet.Text.Trim().Length <= 0)
            {
                this.error.SetError(txtNhanxet, "Hãy nhập nhận xét cho báo cáo!!!");
                return;
            }
            this.error.Clear();
            string phone = txtDiem.Text.ToString();
            Regex  rg    = new Regex(@"^[-+]?[0-9]*\.?[0-9]+$");

            rg.IsMatch(phone);
            if (rg.IsMatch(phone) == false)
            {
                this.error.SetError(txtDiem, "Điểm không chứa chữ cái!!!");
                return;
            }
            else if (float.Parse(txtDiem.Text.Trim()) < 0 || float.Parse(txtDiem.Text.Trim()) > 10)
            {
                this.error.SetError(txtDiem, "Điểm không nằm trong phạm vi cho phép!!!");
                return;
            }
            this.error.Clear();
            if (rbHT.Checked == false && rbCHT.Checked == false)
            {
                this.error.SetError(rbHT, "Hãy chọn tiến độ đề tài!!!");
                return;
            }
            this.error.Clear();
            string IDBC = this.dgvBaocao.CurrentRow.Cells[0].Value.ToString();
            BaoCao bc   = sv.BaoCaos.Single(t => t.IDBaoCao.Equals(IDBC));

            bc.IDDeTai   = this.cbbIDDetai.SelectedValue.ToString();
            bc.LanBaoCao = int.Parse(this.cbbLanBC.SelectedItem.ToString());
            bc.TaiLieu   = this.txtTailieu.Text.Trim();
            bc.NhanXet   = this.txtNhanxet.Text.Trim();
            if (this.txtDiem.Text == "")
            {
                bc.DiemTong = null;
            }
            else
            {
                bc.DiemTong = float.Parse(this.txtDiem.Text.ToString());
            }
            if (rbHT.Checked == true)
            {
                bc.TrangThai = true;
            }
            else
            {
                bc.TrangThai = false;
            }
            if (BaocaoController.updatebc(bc) == false)
            {
                MessageBox.Show("sửa thất bại");
            }
            Load_data();
            clean();
            this.txtIDBaocao.Enabled = true;
        }