Пример #1
0
        /// <summary>
        /// DataRow → M02_BAIKA_Searchへの変換をおこなう
        /// </summary>
        /// <param name="rw">DataRow</param>
        /// <returns></returns>
        private M02_BAIKA_Search getRowData(DataRow rw)
        {
            M02_BAIKA_Search data = new M02_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);
        }
Пример #2
0
        /// <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;
                    }

                    M02_BAIKA_Search row = getRowData(rw);
                    // 対象データ取得
                    var data =
                        context.M02_BAIKA
                        .Where(w => w.得意先コード == row.得意先コード && w.枝番 == row.得意先コード枝番 && w.品番コード == row.品番コード)
                        .FirstOrDefault();

                    if (data == null)
                    {
                        // 新規登録
                        M02_BAIKA bik = new M02_BAIKA();
                        bik.得意先コード = row.得意先コード;
                        bik.枝番     = row.得意先コード枝番;
                        bik.品番コード  = row.品番コード ?? -1;
                        bik.単価     = row.単価;
                        bik.登録者    = loginUserId;
                        bik.登録日時   = DateTime.Now;
                        bik.最終更新者  = loginUserId;
                        bik.最終更新日時 = DateTime.Now;

                        context.M02_BAIKA.ApplyChanges(bik);
                    }
                    else
                    {
                        // データ更新
                        data.単価     = row.単価;
                        data.最終更新者  = loginUserId;
                        data.最終更新日時 = DateTime.Now;
                        data.AcceptChanges();
                    }
                }

                // データ削除
                DataTable delTbl = ds.Tables["delTbl"];
                foreach (DataRow rw in delTbl.Rows)
                {
                    M02_BAIKA_Search row = getRowData(rw);

                    // 対象データ取得
                    var data =
                        context.M02_BAIKA
                        .Where(w => w.得意先コード == row.得意先コード && w.枝番 == row.得意先コード枝番 && w.品番コード == row.品番コード)
                        .FirstOrDefault();

                    if (data == null)
                    {
                        continue;
                    }

                    context.M02_BAIKA.DeleteObject(data);
                    data.AcceptChanges();
                }

                context.SaveChanges();
            }
        }