/// <summary>
        /// Hàm cập nhật công trường
        /// </summary>
        /// <param name="value">công trường cần cập nhật</param>
        /// <returns>bool</returns>
        public static bool CapNhatCongTruong(CongTruong value)
        {
            String     sql  = "UPDATE CongTruong SET TenCongTruong = '" + value.TenCongTruong + "', SoDienThoai = '" + value.SoDienThoai + "', CaoDiem = '" + value.CaoDiem + "', Tang = '" + value.Tang + "', KhuVuc = '" + value.KhuVuc + "' WHERE MaCongTruong = '" + value.MaCongTruong + "'";
            Connection conn = new Connection();

            return(conn.SetData(sql));
        }
        /// <summary>
        /// Hàm thêm công trường
        /// </summary>
        /// <param name="value">công trường cần thêm mới</param>
        /// <returns>bool</returns>
        public static bool ThemCongTruong(CongTruong value)
        {
            String     sql  = "INSERT INTO CongTruong (MaCongTruong, TenCongTruong, SoDienThoai, CaoDiem, Tang, KhuVuc) VALUES ('" + value.MaCongTruong + "','" + value.TenCongTruong + "','" + value.SoDienThoai + "','" + value.CaoDiem + "','" + value.Tang + "','" + value.KhuVuc + "')";
            Connection conn = new Connection();

            return(conn.SetData(sql));
        }
 /// <summary>
 /// Hàm lấy thông tin công trường
 /// </summary>
 /// <param name="id">mã công trường</param>
 /// <returns>CongTruong</returns>
 public static CongTruong CongTruong(String id)
 {
     CongTruong congTruong = new CongTruong();
     Connection conn = new Connection();
     string sql = "SELECT * FROM CongTruong WHERE MaCongTruong = '" + id + "'";
     SQLiteDataReader dr = conn.GetData(sql);
     while (dr.Read())
     {
         congTruong = new CongTruong(dr["MaCongTruong"].ToString(), dr["TenCongTruong"].ToString(), dr["SoDienThoai"].ToString(), dr.GetDouble(3), dr["Tang"].ToString(), dr["KhuVuc"].ToString());
     }
     return congTruong;
 }
        /// <summary>
        /// Hàm lấy thông tin công trường
        /// </summary>
        /// <param name="id">mã công trường</param>
        /// <returns>CongTruong</returns>
        public static CongTruong CongTruong(String id)
        {
            CongTruong       congTruong = new CongTruong();
            Connection       conn       = new Connection();
            string           sql        = "SELECT * FROM CongTruong WHERE MaCongTruong = '" + id + "'";
            SQLiteDataReader dr         = conn.GetData(sql);

            while (dr.Read())
            {
                congTruong = new CongTruong(dr["MaCongTruong"].ToString(), dr["TenCongTruong"].ToString(), dr["SoDienThoai"].ToString(), dr.GetDouble(3), dr["Tang"].ToString(), dr["KhuVuc"].ToString());
            }
            return(congTruong);
        }
        public ExportData(String _maHoChieu)
        {
            Connection       conn = new Connection();
            string           sql  = "SELECT HoChieu.*, LoKhoan.ID, LoKhoan.MaLK, LoKhoan.BanKinhLK, LoKhoan.ChieuSauLK FROM LoKhoan, BanVe, HoChieu WHERE HoChieu.MaHoChieu = LoKhoan.MaHoChieu And BanVe.ID= HoChieu.MaBanVe and HoChieu.MaHoChieu = \'" + _maHoChieu + "\';";
            SQLiteDataReader dr   = conn.GetData(sql);

            while (dr.Read())
            {
                hoChieu.TenHoChieu   = dr["TenHoChieu"].ToString();
                hoChieu.ChieuCaoTang = (dr["ChieuCaoTang"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["ChieuCaoTang"].ToString()));
                hoChieu.HeSoKC       = (dr["HeSoKC"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["HeSoKC"].ToString()));
                hoChieu.KichThuoc_X  = (dr["KichThuoc_X"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["KichThuoc_X"].ToString()));
                hoChieu.KichThuoc_Y  = (dr["KichThuoc_Y"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["KichThuoc_Y"].ToString()));

                //thoiDiemNo = Convert.ToDateTime(dr["ThoiDiemNo"].ToString());

                hoChieu.MaDatDa      = dr["MaDatDa"].ToString();
                hoChieu.MaCapDo      = dr["MaCapDo"].ToString();
                hoChieu.MaMayKhoan   = dr["MaMayKhoan"].ToString();
                hoChieu.MaThuocNo    = dr["MaThuocNo"].ToString();
                hoChieu.MaCongTruong = dr["MaCongTruong"].ToString();
                danhSachLoKhoan.Add(new LoKhoan(dr["MaLK"].ToString(), Convert.ToDouble(dr["BanKinhLK"].ToString()), Convert.ToDouble(dr["ChieuSauLK"].ToString())));
            }
            dr.Close();

            //Lấy hết giá trị của bảng Đất Đá
            datDa = BS_DatDa.DatDa(hoChieu.MaDatDa);

            //Lấy hết giá trị từ bảng Cấp độ nổ
            capDoNo = BS_CapDoNo.CapDoNo(hoChieu.MaCapDo);

            //Lấy hết giá trị của bảng Máy khoan
            mayKhoan = BS_MayKhoan.MayKhoan(hoChieu.MaMayKhoan);

            //Lấy hết giá trị của bảng Thuốc nổ
            thuocNo = BS_ThuocNo.ThuocNo(hoChieu.MaThuocNo);

            //Lấy hết giá trị của bảng Công trường
            congTruong = BS_CongTruong.CongTruong(hoChieu.MaCongTruong);

            //tính toán
            congTB = Math.Round((thuocNo.KhaNangSinhCong / 360), 2);   // Cong trung binh (e)
                                                                       //double congtb = thuocNo.KhaNangSinhCong / 360; // Cong trung binh (e)
                                                                       //congtb = Math.Round(congtb * 100) / 100;
                                                                       //duong Khang chan tang
                                                                       // duongKhang = Math.Round((53 * datDa.KCTB_KhoiNut * (mayKhoan.DuongKinhLoKhoan / 1000) * Math.Sqrt(thuocNo.MatDoNapThuoc * congTB / datDa.DungTrong) * (1.6 - 0.5 * hoChieu.HeSoKC)) * 100) / 100;
            duongKhang = Math.Round((53 * datDa.HeSoDatDa * (mayKhoan.DuongKinhLoKhoan / 1000) * Math.Sqrt((thuocNo.MatDoNapThuoc * (congTB / datDa.DungTrong))) * (1.6 - 0.5 * hoChieu.HeSoKC)), 2);
            //Khoang cach giua cac lo min  (Kí Hiệu {A})
            // KC_Cot = Math.Round((hoChieu.HeSoKC * duongKhang) * 100) / 100;
            KC_Cot = Math.Round((hoChieu.HeSoKC * duongKhang), 2);
            // Khoảng cách giữa các hàng  (Kí Hiệu {b})
            // KC_Hang = Math.Round((0.85 * KC_Cot) * 100) / 100;
            KC_Hang = Math.Round((0.85 * KC_Cot), 2);
            //Chieu sau khoan them
            chieuSauThem = Math.Round((0.3 * KC_Hang), 2);
            // Chieu dai lo khoan (Kí Hiệu {Lk})
            chieuSauToanBoLK = Math.Round((mayKhoan.ChieuSau + chieuSauThem), 2);
            // Chieu cao cột bua thiết kế ( Kí Hiệu {Lbua})
            chieuDaiBua = Math.Round((0.75 * duongKhang), 2);
            //Hang min
            //hangMin = Convert.ToInt32(hoChieu.KichThuoc_Y / KC_Hang);
            //Hangmin = Math.Round(Hangmin * 100) / 100;
            //Cot min
            //soCotMin = Convert.ToInt32((hoChieu.KichThuoc_X - duongKhang) / KC_Cot);
            // Tổng số lỗ mìn    (Kí Hiệu {Tổng số lỗ})
            //tongLoMin = soCotMin * hangMin;
        }
 private void buttonInsert_Click(object sender, EventArgs e)
 {
     CongTruong inserted = new CongTruong();
     inserted.MaCongTruong = textBoxMaCongTruong2.Text;
     inserted.TenCongTruong = textBoxTenCongTruong2.Text;
     inserted.SoDienThoai = textBoxSoDienThoai2.Text;
     if(textBoxCaoDiem2.Text != String.Empty) { inserted.CaoDiem = double.Parse(textBoxCaoDiem2.Text); }           
     inserted.Tang = textBoxTang2.Text;
     inserted.KhuVuc = textBoxKhuVuc2.Text;
     try
     {
         BS_CongTruong.ThemCongTruong(inserted);
     }
     catch(Exception exc)
     {
         MessageBox.Show("Lỗi - " + exc.Message);
     }
     ShowPanel(1);
     HienThiDuLieu_CongTruong();
 }
        public ExportData(String _maHoChieu)
        {
            Connection conn = new Connection();
            string sql = "SELECT HoChieu.*, LoKhoan.ID, LoKhoan.MaLK, LoKhoan.BanKinhLK, LoKhoan.ChieuSauLK FROM LoKhoan, BanVe, HoChieu WHERE HoChieu.MaHoChieu = LoKhoan.MaHoChieu And BanVe.ID= HoChieu.MaBanVe and HoChieu.MaHoChieu = \'" + _maHoChieu + "\';";
            SQLiteDataReader dr = conn.GetData(sql);
            while (dr.Read())
            {
                hoChieu.TenHoChieu = dr["TenHoChieu"].ToString();
                hoChieu.ChieuCaoTang = (dr["ChieuCaoTang"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["ChieuCaoTang"].ToString()));
                hoChieu.HeSoKC = (dr["HeSoKC"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["HeSoKC"].ToString()));
                hoChieu.KichThuoc_X = (dr["KichThuoc_X"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["KichThuoc_X"].ToString()));
                hoChieu.KichThuoc_Y = (dr["KichThuoc_Y"].ToString() == String.Empty ? 0 : Convert.ToDouble(dr["KichThuoc_Y"].ToString()));

                //thoiDiemNo = Convert.ToDateTime(dr["ThoiDiemNo"].ToString());

                hoChieu.MaDatDa = dr["MaDatDa"].ToString();
                hoChieu.MaCapDo = dr["MaCapDo"].ToString();
                hoChieu.MaMayKhoan = dr["MaMayKhoan"].ToString();
                hoChieu.MaThuocNo = dr["MaThuocNo"].ToString();
                hoChieu.MaCongTruong = dr["MaCongTruong"].ToString();
                danhSachLoKhoan.Add(new LoKhoan(dr["MaLK"].ToString(), Convert.ToDouble(dr["BanKinhLK"].ToString()), Convert.ToDouble(dr["ChieuSauLK"].ToString())));
            }
            dr.Close();

            //Lấy hết giá trị của bảng Đất Đá 
            datDa = BS_DatDa.DatDa(hoChieu.MaDatDa);

            //Lấy hết giá trị từ bảng Cấp độ nổ
            capDoNo = BS_CapDoNo.CapDoNo(hoChieu.MaCapDo);

            //Lấy hết giá trị của bảng Máy khoan 
            mayKhoan = BS_MayKhoan.MayKhoan(hoChieu.MaMayKhoan);

            //Lấy hết giá trị của bảng Thuốc nổ
            thuocNo = BS_ThuocNo.ThuocNo(hoChieu.MaThuocNo);

            //Lấy hết giá trị của bảng Công trường
            congTruong = BS_CongTruong.CongTruong(hoChieu.MaCongTruong);
           
            //tính toán
            congTB = Math.Round((thuocNo.KhaNangSinhCong / 360), 2);   // Cong trung binh (e)
                                                                       //double congtb = thuocNo.KhaNangSinhCong / 360; // Cong trung binh (e)
                                                                       //congtb = Math.Round(congtb * 100) / 100;
                                                                       //duong Khang chan tang
                                                                       // duongKhang = Math.Round((53 * datDa.KCTB_KhoiNut * (mayKhoan.DuongKinhLoKhoan / 1000) * Math.Sqrt(thuocNo.MatDoNapThuoc * congTB / datDa.DungTrong) * (1.6 - 0.5 * hoChieu.HeSoKC)) * 100) / 100;
            duongKhang = Math.Round((53 * datDa.HeSoDatDa * (mayKhoan.DuongKinhLoKhoan / 1000) * Math.Sqrt((thuocNo.MatDoNapThuoc * (congTB / datDa.DungTrong))) * (1.6 - 0.5 * hoChieu.HeSoKC)), 2);
            //Khoang cach giua cac lo min  (Kí Hiệu {A})
            // KC_Cot = Math.Round((hoChieu.HeSoKC * duongKhang) * 100) / 100;
            KC_Cot = Math.Round((hoChieu.HeSoKC * duongKhang), 2);
            // Khoảng cách giữa các hàng  (Kí Hiệu {b})
            // KC_Hang = Math.Round((0.85 * KC_Cot) * 100) / 100;
            KC_Hang = Math.Round((0.85 * KC_Cot), 2);
            //Chieu sau khoan them
            chieuSauThem = Math.Round((0.3 * KC_Hang), 2);
            // Chieu dai lo khoan (Kí Hiệu {Lk})
            chieuSauToanBoLK = Math.Round((mayKhoan.ChieuSau + chieuSauThem), 2);
            // Chieu cao cột bua thiết kế ( Kí Hiệu {Lbua})
            chieuDaiBua = Math.Round((0.75 * duongKhang), 2);
            //Hang min
            //hangMin = Convert.ToInt32(hoChieu.KichThuoc_Y / KC_Hang);
            //Hangmin = Math.Round(Hangmin * 100) / 100;
            //Cot min
            //soCotMin = Convert.ToInt32((hoChieu.KichThuoc_X - duongKhang) / KC_Cot);
            // Tổng số lỗ mìn    (Kí Hiệu {Tổng số lỗ})
            //tongLoMin = soCotMin * hangMin;
        }
 /// <summary>
 /// Hàm cập nhật công trường
 /// </summary>
 /// <param name="value">công trường cần cập nhật</param>
 /// <returns>bool</returns>
 public static bool CapNhatCongTruong(CongTruong value)
 {
     String sql = "UPDATE CongTruong SET TenCongTruong = '" + value.TenCongTruong + "', SoDienThoai = '" + value.SoDienThoai + "', CaoDiem = '" + value.CaoDiem + "', Tang = '" + value.Tang + "', KhuVuc = '" + value.KhuVuc + "' WHERE MaCongTruong = '" + value.MaCongTruong + "'";
     Connection conn = new Connection();
     return conn.SetData(sql);
 }
 /// <summary>
 /// Hàm thêm công trường
 /// </summary>
 /// <param name="value">công trường cần thêm mới</param>
 /// <returns>bool</returns>
 public static bool ThemCongTruong(CongTruong value)
 {
     String sql = "INSERT INTO CongTruong (MaCongTruong, TenCongTruong, SoDienThoai, CaoDiem, Tang, KhuVuc) VALUES ('" + value.MaCongTruong + "','" + value.TenCongTruong + "','" + value.SoDienThoai + "','" + value.CaoDiem + "','" + value.Tang + "','" + value.KhuVuc + "')";
     Connection conn = new Connection();
     return conn.SetData(sql);
 }