// KHU VỰC - HA@M tìm kiếm
        public KhachHangDTO[] getKhachHangById(string Id)
        {
            string strSQL = "SELECT(SELECT COUNT(*) FROM KHACHHANG AS tmp WHERE tmp.MaKhachHang<=KHACHHANG.MaKhachHang) as STT, KHACHHANG.MaKhachHang, KHACHHANG.TenKhachHang, KHACHHANG.MaLoaiKH,KHACHHANG.CMND,KHACHHANG.DiaChi, KHACHHANG.KhachHangDaiDien From KHACHHANG,LOAIKHACHHANG Where KHACHHANG.MaLoaiKH = LOAIKHACHHANG.MaLoaiKH and KHACHHANG.MaKhachHang = '" + Id + "'";
            DataTable dt = ExecuteQuery(strSQL);
            KhachHangDTO[] kDTOArr = new KhachHangDTO[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                object kDTO = GetDataFromDataRow(dt, i);
                kDTOArr[i] = (KhachHangDTO)kDTO;

            }
            return kDTOArr;
        }
        public KhachHangDTO[] GetInfoKH(string maKH)
        {
            string sql = "select distinct KHACHHANG.TenKhachHang,KHACHHANG.DiaChi,CMND,MaKhachHang,MaLoaiKH, KHACHHANG.KhachHangDaiDien from KHACHHANG,PHIEUTHUE where KHACHHANG.MaKhachHang=PHIEUTHUE.KhachHangDaiDien and PHIEUTHUE.KhachHangDaiDien='" + maKH + "'";
            DataTable dt = ExecuteQuery(sql);
            KhachHangDTO[] kDTOArr = new KhachHangDTO[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                object kDTO = GetDataFromDataRow(dt, i);
                kDTOArr[i] = (KhachHangDTO)kDTO;

            }
            return kDTOArr;
        }
 public int UpdateKhachHang(KhachHangDTO kDTO)
 {
     return kDAO.Update(kDTO);
 }
 public int InsertKhachHang(KhachHangDTO kDTO)
 {
     return kDAO.Insert(kDTO);
 }
 // Hàm làm thử theo kiểu add LIST
 //public List<KhachHangDTO> getListKH()
 //{
 //    List<KhachHangDTO> listKH = new List<KhachHangDTO>();
 //    DataTable dt = new DataTable();
 //    string strSQL = "Select * From KHACHHANG";
 //    dt = ExecuteQuery(strSQL);
 //    foreach (DataRow irow in dt.Rows)
 //    {
 //        KhachHangDTO tmp = new KhachHangDTO();
 //        tmp.CMND = (string)irow["CMND"];
 //        tmp.DiaChi = (string)irow["DiaChi"];
 //        if (irow["KhachHangDaiDien"].Equals(""))
 //            tmp.KhachHangDaiDien = (string)irow["KhachHangDaiDien"];
 //        else
 //            tmp.KhachHangDaiDien = "";
 //        tmp.MaKhachHang = (string)irow["MaKhachHang"];
 //        tmp.MaLoaiKH = (string)irow["MaLoaiKH"];
 //        tmp.TenKhachHang = (string)irow["TenKhachHang"];
 //        listKH.Add(tmp);
 //    }
 //    return listKH;
 //}
 // Lòng nhân ái thật sự : Người ta có thể cho đi những gì đã cũ - nhưng lòng nhân ái thật sự người ta cho đi những gì mình yêu thích nhất - HTV9- Những Điều kỳ Điệu :10:30 6-6-2011
 // Hàm lấy toàn bộ danh sách.
 /*
  * CÓ vài điều cần lưu ý.
  *  Thứ 1 : Chỉ viết cho đúng & đủ
  *  Thứ 2 : Chưa xử lý cho trường hợp sai, nên khi dt=NULL thì chương trình sẽ ERROR.
  */
 protected override object GetDataFromDataRow(DataTable dt, int i)
 {
     KhachHangDTO kDTO = new KhachHangDTO();
     kDTO.CMND = dt.Rows[i]["CMND"].ToString();
     kDTO.DiaChi = dt.Rows[i]["DiaChi"].ToString();
     kDTO.KhachHangDaiDien = dt.Rows[i]["KhachHangDaiDien"].ToString();
     kDTO.MaKhachHang = dt.Rows[i]["MaKhachHang"].ToString();
     kDTO.MaLoaiKH = dt.Rows[i]["MaLoaiKH"].ToString();
     kDTO.TenKhachHang = dt.Rows[i]["TenKhachHang"].ToString();
     //kDTO.
     return (object)kDTO;
 }
 public int Update(KhachHangDTO kDTO)
 {
     string strSQL = "";
     /* Nếu khách hàng cần sửa có KHDD ! NULL thì lệnh 1 ==> cập nhật lại KHDD cho khách hàng cần sửa.
      * Ngược lại là thì xóa KH và thêm lại KH với MaKHDD là NULL.
      * Còn 1 trường hợp khách hàng sửa có KHDD là NULL
      */
     // Trường hợp sửa mã khách hàng đại diện cho khách hàng ko phải là KHDD ==> Ô textbox KHDD<>NULL
     if (!kDTO.KhachHangDaiDien.Equals("")){
         strSQL = "Update KHACHHANG Set TenKhachHang=N'" + kDTO.TenKhachHang + "',CMND='" + kDTO.CMND + "',DiaChi=N'" + kDTO.DiaChi + "',MaLoaiKH='" + kDTO.MaLoaiKH + "',KhachHangDaiDien='" + kDTO.KhachHangDaiDien + "',TenKhachHang_EN='" + kDTO.TenKhachHang_EN + "' Where MaKhachHang='" + kDTO.MaKhachHang + "'";
     }
     else
     {
         // Trường hợp này khách hàng cần sửa này là 1 khách hàng đại diện có thể chưa chính thức(có tham chiếu) hoặc chính thức --> Nhưng chỉ thực hiện sửa các thông tin đơn thuần
         if (KhachHangDaiDienisNULL(kDTO.MaKhachHang) == 0)
         {
             strSQL = "Update KHACHHANG Set TenKhachHang=N'" + kDTO.TenKhachHang + "',CMND='" + kDTO.CMND + "',DiaChi=N'" + kDTO.DiaChi + "',MaLoaiKH='" + kDTO.MaLoaiKH + "',TenKhachHang_EN='" + kDTO.TenKhachHang_EN + "' Where MaKhachHang='" + kDTO.MaKhachHang + "'";
         }
         else
         {
             // Ngược lại của trường hợp trên, tức là khách hàng này không là KHDD nhưng sửa lại là KHDD
             // Vì nếu sửa lại là KHDD thì không thể nào set KHDD="" được, phải Del cái cũ đi,
             // Insert cái mới vào với trường KhachHangDaiDien = NULL bằng cách không liệt kê trong danh sách trường chèn
             // Vì cách này duy nhất gấn NULL cho 1 khóa ngoại.
             strSQL = "Delete From KHACHHANG Where MaKhachHang='" + kDTO.MaKhachHang + "'";
             ExecuteNonQuery(strSQL);
             strSQL = " Insert Into KHACHHANG(MaKhachHang,TenKhachHang,CMND,DiaChi,MaLoaiKH,TenKhachHang_EN) Values('" + kDTO.MaKhachHang + "',N'" + kDTO.TenKhachHang + "','" + kDTO.CMND + "',N'" + kDTO.DiaChi + "','" + kDTO.MaLoaiKH + "','" + kDTO.TenKhachHang_EN + "')";
         }
     }
     return ExecuteNonQuery(strSQL,"isReturnInt");
 }
        public KhachHangDTO[] TenKHDaiDien(string MaHD)
        {
            string sql = "select KHACHHANG.TenKhachHang,KHACHHANG.DiaChi from KHACHHANG,PHIEUTHUE,CTHOADON,HOADON where KHACHHANG.MaKhachHang=PHIEUTHUE.KhachHangDaiDien and PHIEUTHUE.MaPhieuThue=CTHOADON.MaPhieuThue and HOADON.MaHoaDOn=CTHOADON.MaHoaDon and HOADON.MaHoaDOn='" + MaHD + "'";
            DataTable dt = ExecuteQuery(sql);
            KhachHangDTO[] kDTOArr = new KhachHangDTO[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                object kDTO = GetDataFromDataRow(dt, i);
                kDTOArr[i] = (KhachHangDTO)kDTO;

            }
            return kDTOArr;
        }
 public int Insert(KhachHangDTO kDTO)
 {
     string strSQL="";
     if (kDTO.KhachHangDaiDien.Equals(""))
         strSQL = " Insert Into KHACHHANG(MaKhachHang,TenKhachHang,CMND,DiaChi,MaLoaiKH,TenKhachHang_EN) Values('" + kDTO.MaKhachHang + "',N'" + kDTO.TenKhachHang + "','" + kDTO.CMND + "',N'" + kDTO.DiaChi + "','" + kDTO.MaLoaiKH + "','" + kDTO.TenKhachHang_EN + "')";
     else
         strSQL = " Insert Into KHACHHANG(MaKhachHang,TenKhachHang,CMND,DiaChi,MaLoaiKH,KhachHangDaiDien,TenKhachHang_EN) Values('" + kDTO.MaKhachHang + "',N'" + kDTO.TenKhachHang + "','" + kDTO.CMND + "',N'" + kDTO.DiaChi + "','" + kDTO.MaLoaiKH + "','" + kDTO.KhachHangDaiDien + "','" + kDTO.TenKhachHang_EN + "')";
     return ExecuteNonQuery(strSQL,"isReturnInt");
 }
        // Hàm mới cập nhật từ HOADON
        public KhachHangDTO[] InfoKH(string maPT)
        {
            string sql = "select CTPHIEUTHUE.MaKhachHang,KHACHHANG.TenKhachHang,KHACHHANG.DiaChi,KHACHHANG.MaLoaiKH,LOAIKHACHHANG.TenLoaiKH, CMND, KHACHHANG.KhachHangDaiDien from LOAIKHACHHANG,KHACHHANG,CTPHIEUTHUE,PHIEUTHUE where KHACHHANG.MaLoaiKH=LOAIKHACHHANG.MaLoaiKH and KHACHHANG.MaKhachHang=CTPHIEUTHUE.MaKhachHang and CTPHIEUTHUE.MaPhieuThue=PHIEUTHUE.MaPhieuThue and PHIEUTHUE.MaPhieuThue='" + maPT + "'";
            DataTable dt = ExecuteQuery(sql);
            KhachHangDTO[] kDTOArr = new KhachHangDTO[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                object kDTO = GetDataFromDataRow(dt, i);
                kDTOArr[i] = (KhachHangDTO)kDTO;

            }
            return kDTOArr;
        }
        public KhachHangDTO[] getListKhachHangDaiDienById(string Id)
        {
            string strSQL = "Select * From KHACHHANG Where KhachHangDaiDien='" + Id + "'";
            DataTable dt = ExecuteQuery(strSQL);
            KhachHangDTO[] kDTOArr = new KhachHangDTO[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                object kDTO = GetDataFromDataRow(dt, i);
                kDTOArr[i] = (KhachHangDTO)kDTO;

            }
            return kDTOArr;
        }