///---------------------------------------------------------------------------- /// <summary> /// キャンペーンヘッダとキャンペーン明細データを新規に登録する </summary> /// <param name="dt"> /// ヘッダID</param> ///---------------------------------------------------------------------------- private void dataInsert(int hID) { try { // キャンペーンヘッダ NHBRDataSet.キャンペーンヘッダRow r = dts.キャンペーンヘッダ.NewキャンペーンヘッダRow(); r.ID = hID; r.称 = txtName.Text; if (dateTimePicker1.Checked) { r.開始年月日 = DateTime.Parse(dateTimePicker1.Value.ToShortDateString()); } else { r.開始年月日 = staDate; } if (dateTimePicker2.Checked) { r.終了年月日 = DateTime.Parse(dateTimePicker2.Value.ToShortDateString()); } else { r.終了年月日 = endDate; } r.更新年月日 = DateTime.Now; dts.キャンペーンヘッダ.AddキャンペーンヘッダRow(r); // キャンペーン明細 for (int i = 0; i < gcMultiRow1.RowCount; i++) { // 商品またはプレゼントが登録されている場合、登録可とした : 2017/11/19 if (gcMultiRow1[i, "txtSCode"].Value != null || gcMultiRow1[i, "txtPCode"].Value != null) { NHBRDataSet.キャンペーン明細Row m = dts.キャンペーン明細.Newキャンペーン明細Row(); m.ヘッダID = hID; m.商品コード = Utility.StrtoInt(Utility.NulltoStr(gcMultiRow1[i, "txtSCode"].Value)); m.商品数量 = Utility.StrtoInt(Utility.NulltoStr(gcMultiRow1[i, "txtSSu"].Value)); m.プレゼント商品コード = Utility.StrtoInt(Utility.NulltoStr(gcMultiRow1[i, "txtPCode"].Value)); m.プレゼント数量 = Utility.StrtoInt(Utility.NulltoStr(gcMultiRow1[i, "txtPSu"].Value)); m.更新年月日 = DateTime.Now; dts.キャンペーン明細.Addキャンペーン明細Row(m); } } // データベースアップデート adpMn.UpdateAll(dts); } catch (Exception ex) { MessageBox.Show(ex.Message + Environment.NewLine + "キャンペーンマスターの登録に失敗しました"); } finally { } }
///-------------------------------------------------------------- /// <summary> /// キャンペーンデータを削除する </summary> /// <param name="sID"> /// レコードID</param> /// <returns> /// true:削除成功、false:削除失敗</returns> ///-------------------------------------------------------------- private void dataDelete(int sID) { try { // 削除ヘッダデータ取得(エラー回避のためDataRowState.Deleted と DataRowState.Detachedは除外して抽出する) var d = dts.キャンペーンヘッダ.Where(a => a.RowState != DataRowState.Deleted && a.RowState != DataRowState.Detached && a.ID == sID); // foreach用の配列を作成する var list = d.ToList(); // 削除 foreach (var it in list) { NHBRDataSet.キャンペーンヘッダRow dl = dts.キャンペーンヘッダ.FindByID(it.ID); dl.Delete(); } // 削除明細データ取得(エラー回避のためDataRowState.Deleted と DataRowState.Detachedは除外して抽出する) var md = dts.キャンペーン明細.Where(a => a.RowState != DataRowState.Deleted && a.RowState != DataRowState.Detached && a.ヘッダID == sID); // foreach用の配列を作成する var list2 = md.ToList(); // 削除 foreach (var it in list2) { NHBRDataSet.キャンペーン明細Row dl = dts.キャンペーン明細.FindByID(it.ID); dl.Delete(); } adpMn.UpdateAll(dts); } catch (Exception ex) { MessageBox.Show(ex.ToString() + Environment.NewLine + "キャンペーンマスターの削除に失敗しました", "削除失敗", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }