Пример #1
0
        ///--------------------------------------------------------------------
        /// <summary>
        ///     過去勤怠データを削除する </summary>
        ///--------------------------------------------------------------------
        private void pastDataDelete()
        {
            // 待機カーソルにする
            this.Cursor = Cursors.WaitCursor;

            // データセットとアダプタ
            ryowaDataSet dts = new ryowaDataSet();

            ryowaDataSetTableAdapters.環境設定TableAdapter adp  = new ryowaDataSetTableAdapters.環境設定TableAdapter();
            ryowaDataSetTableAdapters.T_勤怠TableAdapter tAdp = new ryowaDataSetTableAdapters.T_勤怠TableAdapter();
            adp.Fill(dts.環境設定);

            int delMonth = 0;

            // 環境設定ファイルを読む
            if (dts.環境設定.Any(a => a.ID == common.global.configKEY))
            {
                var s = dts.環境設定.Single(a => a.ID == common.global.configKEY);
                delMonth = s.データ保存月数;
            }
            else
            {
                this.Cursor = Cursors.Default;
                return;
            }

            // データ保存月数が0(ゼロ)のとき、削除しないで終了
            if (delMonth == 0)
            {
                this.Cursor = Cursors.Default;
                return;
            }

            // 過去勤怠データ削除
            tAdp.Fill(dts.T_勤怠);
            DateTime dt = DateTime.Today.AddMonths(-1 * delMonth);

            var ss = dts.T_勤怠.Where(a => (a.日付.Year * 100 + a.日付.Month) < (dt.Year * 100 + dt.Month) &&
                                    a.RowState != DataRowState.Deleted);

            foreach (var t in ss)
            {
                t.Delete();
            }

            // データベース更新
            tAdp.Update(dts.T_勤怠);

            // カーソルを戻す
            this.Cursor = Cursors.Default;
        }