/// <summary> /// DataRow → M03_BAIKA_Searchへの変換をおこなう /// </summary> /// <param name="rw">DataRow</param> /// <returns></returns> private M03_BAIKA_Search getRowData(DataRow rw) { M03_BAIKA_Search data = new M03_BAIKA_Search(); // REMARKS:必要分のみ設定 data.仕入先コード = int.Parse(rw["仕入先コード"].ToString()); data.仕入先コード枝番 = int.Parse(rw["仕入先コード枝番"].ToString()); data.品番コード = int.Parse(rw["品番コード"].ToString()); data.単価 = decimal.Parse(rw["単価"].ToString()); return(data); }
/// <summary> /// 仕入先売価設定データ登録処理 /// </summary> /// <param name="ds"> /// データセット /// [0:updTbl]登録・更新対象のデータテーブル /// [1:delTbl]削除対象のデータテーブル /// </param> public void Update(DataSet ds, int loginUserId) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); // データ登録・更新 DataTable updTbl = ds.Tables["updTbl"]; foreach (DataRow rw in updTbl.Rows) { // 変更なしデータは処理対象外とする if (rw.RowState == DataRowState.Unchanged) { continue; } M03_BAIKA_Search row = getRowData(rw); // 対象データ取得 var data = context.M03_BAIKA .Where(w => w.仕入先コード == row.仕入先コード && w.枝番 == row.仕入先コード枝番 && w.品番コード == row.品番コード) .FirstOrDefault(); if (data == null) { // 新規登録 M03_BAIKA bik = new M03_BAIKA(); bik.仕入先コード = row.仕入先コード; bik.枝番 = row.仕入先コード枝番; bik.品番コード = row.品番コード ?? -1; bik.単価 = row.単価; bik.登録者 = loginUserId; bik.登録日時 = DateTime.Now; bik.最終更新者 = loginUserId; bik.最終更新日時 = DateTime.Now; context.M03_BAIKA.ApplyChanges(bik); } else { // データ更新 data.単価 = row.単価; data.最終更新者 = loginUserId; data.最終更新日時 = DateTime.Now; data.AcceptChanges(); } } // データ削除 DataTable delTbl = ds.Tables["delTbl"]; foreach (DataRow rw in delTbl.Rows) { M03_BAIKA_Search row = getRowData(rw); // 対象データ取得 var data = context.M03_BAIKA .Where(w => w.仕入先コード == row.仕入先コード && w.枝番 == row.仕入先コード枝番 && w.品番コード == row.品番コード) .FirstOrDefault(); if (data == null) { continue; } context.M03_BAIKA.DeleteObject(data); data.AcceptChanges(); } context.SaveChanges(); } }