private void btnSave_Click(object sender, System.EventArgs e) { bool HasError = false; List <int> SurveyYears = new List <int>(); foreach (DataGridViewRow Row in grdOpenDate.Rows) { if (!Row.IsNewRow) { foreach (DataGridViewCell Cell in Row.Cells) { Cell.ErrorText = string.Empty; //進行學年度檢查 if (Cell.ColumnIndex == 0) { int survey_Year; if (int.TryParse("" + Cell.Value, out survey_Year)) { if (SurveyYears.Contains(survey_Year)) { Cell.ErrorText = "調查學年度重覆!"; HasError = true; } else { SurveyYears.Add(survey_Year); } } else { Cell.ErrorText = "調查學年度請輸入數字!"; HasError = true; } } #region 進行日期格式檢查 if (Cell.ColumnIndex == 1 || Cell.ColumnIndex == 2) { DateTime vDateTime; if (!DateTime.TryParse("" + Cell.Value, out vDateTime)) { Cell.ErrorText = "日期格式錯誤"; HasError = true; } else { Cell.Value = vDateTime.ToShortDateString(); } } #endregion } if (string.IsNullOrEmpty(Row.Cells[1].ErrorText) && string.IsNullOrEmpty(Row.Cells[2].ErrorText)) { DateTime dteStart = DateTime.Parse("" + Row.Cells[1].Value); DateTime dteEnd = DateTime.Parse("" + Row.Cells[2].Value); if (dteEnd <= dteStart) { Row.Cells[1].ErrorText = "結束日期必須大於開始日期!"; Row.Cells[2].ErrorText = "結束日期必須大於開始日期!"; HasError = true; } } } } if (HasError) { MessageBox.Show("輸入資料有誤,請檢查後再儲存!"); return; } try { #region 先將全部資料刪除 List <OpenTimeSetting> DeleteRecords = Utility .AccessHelper.Select <OpenTimeSetting>(); DeleteRecords.ForEach(x => x.Deleted = true); DeleteRecords.SaveAll(); #endregion #region 新增資料 OpenTimeSettings.Clear(); foreach (DataGridViewRow Row in grdOpenDate.Rows) { if (!Row.IsNewRow) { string SurveyYear = "" + Row.Cells[0].Value; string StartDateTime = "" + Row.Cells[1].Value; string EndDateTime = "" + Row.Cells[2].Value; OpenTimeSetting vSetting = new OpenTimeSetting(); vSetting.SurveyYear = int.Parse(SurveyYear); vSetting.StartDate = DateTime.Parse(StartDateTime); vSetting.EndDate = DateTime.Parse(EndDateTime); OpenTimeSettings.Add(vSetting); } } Utility.AccessHelper.SaveAll(OpenTimeSettings); MessageBox.Show("儲存成功!"); #endregion } catch (Exception ve) { MessageBox.Show(ve.Message); } }
private void btnSave_Click(object sender, System.EventArgs e) { bool HasError = false; List<int> SurveyYears = new List<int>(); foreach (DataGridViewRow Row in grdOpenDate.Rows) { if (!Row.IsNewRow) { foreach (DataGridViewCell Cell in Row.Cells) { Cell.ErrorText = string.Empty; //進行學年度檢查 if (Cell.ColumnIndex == 0) { int survey_Year; if (int.TryParse("" + Cell.Value, out survey_Year)) { if (SurveyYears.Contains(survey_Year)) { Cell.ErrorText = "調查學年度重覆!"; HasError = true; } else SurveyYears.Add(survey_Year); } else { Cell.ErrorText = "調查學年度請輸入數字!"; HasError = true; } } #region 進行日期格式檢查 if (Cell.ColumnIndex == 1 || Cell.ColumnIndex == 2) { DateTime vDateTime; if (!DateTime.TryParse("" + Cell.Value, out vDateTime)) { Cell.ErrorText = "日期格式錯誤"; HasError = true; } else Cell.Value = vDateTime.ToShortDateString(); } #endregion } if (string.IsNullOrEmpty(Row.Cells[1].ErrorText) && string.IsNullOrEmpty(Row.Cells[2].ErrorText)) { DateTime dteStart = DateTime.Parse(""+Row.Cells[1].Value); DateTime dteEnd = DateTime.Parse("" + Row.Cells[2].Value); if (dteEnd <= dteStart) { Row.Cells[1].ErrorText = "結束日期必須大於開始日期!"; Row.Cells[2].ErrorText = "結束日期必須大於開始日期!"; HasError = true; } } } } if (HasError) { MessageBox.Show("輸入資料有誤,請檢查後再儲存!"); return; } try { #region 先將全部資料刪除 List<OpenTimeSetting> DeleteRecords = Utility .AccessHelper.Select<OpenTimeSetting>(); DeleteRecords.ForEach(x => x.Deleted = true); DeleteRecords.SaveAll(); #endregion #region 新增資料 OpenTimeSettings.Clear(); foreach (DataGridViewRow Row in grdOpenDate.Rows) { if (!Row.IsNewRow) { string SurveyYear = "" + Row.Cells[0].Value; string StartDateTime = "" + Row.Cells[1].Value; string EndDateTime = "" + Row.Cells[2].Value; OpenTimeSetting vSetting = new OpenTimeSetting(); vSetting.SurveyYear = int.Parse(SurveyYear); vSetting.StartDate = DateTime.Parse(StartDateTime); vSetting.EndDate = DateTime.Parse(EndDateTime); OpenTimeSettings.Add(vSetting); } } Utility.AccessHelper.SaveAll(OpenTimeSettings); MessageBox.Show("儲存成功!"); #endregion } catch (Exception ve) { MessageBox.Show(ve.Message); } }