/// <summary> /// Trả về đối tượng Infor dựa vào Primary key của nó /// </summary> /// <param name="ID"></param> /// <returns></returns> public static ManufactureInfor GetInfor(Int16 ID) { DataSet ds = new ManufactureController().GetData("Manufacture_ID=" + ID ); ManufactureInfor Infor = new ManufactureInfor(); if (ds != null) { if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { Infor.Manufacture_ID = Utility.Int16Dbnull(ds.Tables[0].Rows[0]["Manufacture_ID"]); Infor.Manufacture_Code = Utility.sDbnull(ds.Tables[0].Rows[0]["Manufacture_Code"]); Infor.Manufacture_Name = Utility.sDbnull(ds.Tables[0].Rows[0]["Manufacture_Name"]); Infor.Pos = Utility.Int16Dbnull(ds.Tables[0].Rows[0]["Pos"]); Infor.Desc = Utility.sDbnull(ds.Tables[0].Rows[0]["Desc"]); return Infor; } else { return null; } } else { return null; } }
private void LoadManufacture() { try { DataTable dtManufacture = new ManufactureController().GetAllData().Tables[0]; DataTable dtManufacture1 = dtManufacture.Copy(); Utility.AddColumnAlltoDataTable(ref dtManufacture, "Manufacture_ID", "Manufacture_Name", ""); dtManufacture.DefaultView.Sort = "Manufacture_Name ASC"; //cboSearchManufacture.DataSource = dtManufacture.DefaultView; //cboSearchManufacture.DisplayMember = "Manufacture_Name"; //cboSearchManufacture.ValueMember = "Manufacture_ID"; dtManufacture1.DefaultView.Sort = "Manufacture_Name ASC"; cboManufacture.DataSource = dtManufacture1.DefaultView; cboManufacture.DisplayMember = "Manufacture_Name"; cboManufacture.ValueMember = "Manufacture_ID"; //if (cboSearchManufacture.Items.Count > 0) cboSearchManufacture.SelectedIndex = 0; if (cboManufacture.Items.Count > 0) cboManufacture.SelectedIndex = 0; } catch { } }
private void ExecuteAction() { //Kiểm tra tính hợp lệ của dữ liệu trước khi thêm mới if (!IsValidData()) { return; } //Gán ManufactureEntity vào DataEntity SetValueforEntity(); //Khởi tạo BusinessRule để xử lý nghiệp vụ ManufactureInfor Infor = new ManufactureInfor(); Utility.MapValueFromEntityIntoObjectInfor(Infor, ManufactureEntity); ManufactureController _BusRule = new ManufactureController(Infor); switch (Act) { case action.Insert: //Gọi nghiệp vụ Insert dữ liệu ActionResult InsertResult = _BusRule.Insert(); if (InsertResult == ActionResult.Success)//Nếu thành công { //Thêm mới một dòng vào Datasource để cập nhật lại dữ liệu trên DataGridView //phải đảm bảo Datasource và ManufactureEntity có cấu trúc giống nhau mới dùng hàm này DataRow dr = Utility.CopyData(ManufactureEntity.Rows[0], DataSource); dr["Manufacture_ID"] = Infor.Manufacture_ID; if (dr != null)//99.99% là sẽ !=null { DataSource.Rows.Add(dr); DataSource.AcceptChanges(); } //Return to the InitialStatus Act = action.FirstOrFinished; //Nhảy đến bản ghi vừa thêm mới trên lưới. Do txtID chưa bị reset nên dùng luôn Utility.GotoNewRow(grdList, "colManufacture_ID", Infor.Manufacture_ID.ToString()); mdlStatic.SetMsg(lblMsg,"Thêm mới dữ liệu thành công!",false); SetControlStatus(); CurrentCellChanged(); } else//Có lỗi xảy ra { switch (InsertResult) { case ActionResult.ExistedRecord: mdlStatic.SetMsg(lblMsg, "Đã tồn tại Hãng SX có mã: " + txtCode.Text.Trim() + ". Đề nghị bạn xem lại",true); Utility.FocusAndSelectAll( txtCode); break; default: mdlStatic.SetMsg(lblMsg,"Lỗi trong quá trình thêm mới Hãng SX. Liên hệ với VBIT",true); break; } } break; case action.Update: //Gọi Business cập nhật dữ liệu ActionResult UpdateResult = _BusRule.Update(); if (UpdateResult == ActionResult.Success)//Nếu thành công { //Cập nhật số thứ tự cho bản ghi tráo số thứ tự với bản ghi đang được cập nhật(nếu có)? foreach (DataRow drUpdatePos in DataSource.Rows) { if (Utility.Int16Dbnull(drUpdatePos["Pos"]) == Convert.ToInt16(txtPos.Text)) { drUpdatePos["Pos"] = OldPos; break; // TODO: might not be correct. Was : Exit For } } DataSource.AcceptChanges(); //Cập nhật dòng hiện thời trong Datasource để cập nhật lại dữ liệu trên DataGridView DataRow dr = Utility.GetDataRow(DataSource, "Manufacture_ID", txtID.Text.Trim()); if (dr != null) { Utility.CopyData(ManufactureEntity.Rows[0], ref dr); DataSource.AcceptChanges(); } //Return to the InitialStatus Act = action.FirstOrFinished; //Nhảy đến bản ghi vừa cập nhật trên lưới. Do txtID chưa bị reset nên dùng luôn Utility.GotoNewRow(grdList, "colManufacture_ID", txtCode.Text.Trim()); mdlStatic.SetMsg(lblMsg,"Cập nhật dữ liệu thành công.",false); SetControlStatus(); CurrentCellChanged(); } else//Có lỗi xảy ra { switch (UpdateResult) { case ActionResult.Error: mdlStatic.SetMsg(lblMsg,"Lỗi khi cập nhật Hãng SX. Liên hệ với VBIT",true); break; default: mdlStatic.SetMsg(lblMsg,"Lỗi khi cập nhật Hãng SX. Liên hệ với VBIT",true); break; } } break; case action.Delete: if (Utility.AcceptQuestion("Bạn có muốn xóa Hãng SX đang chọn hay không?", "Xác nhận xóa", true)) { string Manufacture_ID = txtID.Text.Trim(); //Gọi nghiệp vụ xóa dữ liệu ActionResult DeleteResult = _BusRule.Delete(); if (DeleteResult == ActionResult.Success)//Nếu xóa thành công trong CSDL { //Xóa dòng dữ liệu vừa chọn trong Datasource để cập nhật lại dữ liệu trên DataGridView DataRow dr = Utility.GetDataRow(DataSource, "Manufacture_ID", Manufacture_ID); if (dr != null) { DataSource.Rows.Remove(dr); DataSource.AcceptChanges(); } //Return to the InitialStatus Act = action.FirstOrFinished; mdlStatic.SetMsg(lblMsg, "Đã xóa Hãng SX có ID: " + Manufacture_ID + " ra khỏi hệ thống.", false); SetControlStatus(); CurrentCellChanged(); } else//Có lỗi xảy ra { switch (DeleteResult) { case ActionResult.DataHasUsedinAnotherTable: mdlStatic.SetMsg(lblMsg, "Hãng SX có ID: " + Manufacture_ID + " đã được sử dụng trong bảng khác nên bạn không thể xóa!", true); break; default: mdlStatic.SetMsg(lblMsg,"Lỗi khi xóa Hãng SX. Liên hệ với VBIT",true); break; } } } break; default: break; } }