Ejemplo n.º 1
0
        /// <summary>コンストラクタ</summary>
        /// <param name="tblName">表名</param>
        public DTTable(string tblName)
        {
            // 表名の文字制限(正規表現チェックだが、
            // コンバートのことを考え棟梁部品は使用しない。)
            Regex rgx = new Regex("^[a-zA-Z0-9_-]+$");
            Match mch = rgx.Match(tblName);

            if (mch.Success)
            {
                // 表名が正しい

                // 表名を設定
                this._tblName = tblName;

                // 循環参照にならないように、表情報の共有オブジェクトを渡す。
                this._cols = new DTColumns(this._tblStat);
                this._rows = new DTRows(this._tblStat, this._cols);
            }
            else
            {
                // 表名が不正
                throw new Exception(
                          "A table name is inaccurate. "
                          + " Regular expression of the character which can be used:"
                          + " \"^[a-zA-Z0-9_-]+$\"");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 指定したステータスの行を検索する
        /// </summary>
        /// <param name="rowState">行ステータス</param>
        /// <returns>指定したステータスの行</returns>
        /// <remarks>行ステータスは論理和演算で複数条件の指定が可能</remarks>
        public DTRows Find(DataRowState rowState)
        {
            DataRowState workState;     // 行ステータスの退避用

            // List型として、指定したステータスの行を取得する
            List <DTRow> listRow = this._rows.Where <DTRow>(row => (row.RowState & rowState) != 0).ToList <DTRow>();

            // List型⇒DTRows型に行をコピーする
            DTRows rows = new DTRows(this._tblStat, this._cols);

            foreach (DTRow row in listRow)
            {
                // 元の行ステータスを退避させる
                workState = row.RowState;

                // DTRowsに行を追加する
                rows.Add(row);

                // 行ステータスを元に戻す
                row.RowState = workState;
            }

            // 行リストを返す
            return(rows);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 指定したステータスの行を検索する
        /// </summary>
        /// <param name="rowState">行ステータス</param>
        /// <returns>指定したステータスの行</returns>
        /// <remarks>行ステータスは論理和演算で複数条件の指定が可能</remarks>
        public DTRows Find(DataRowState rowState)
        {
            DataRowState workState;     // 行ステータスの退避用

            // List型として、指定したステータスの行を取得する

            // .NET Framework 3.5 以降で開発する場合は
            // 以下の行のコメントを解除できます。
            //    List<DTRow> listRow = this._rows.Where<DTRow>(row => (row.RowState & rowState) != 0).ToList<DTRow>();

            // .NET Framework 2.0 以前で開発する場合は
            // 上記に代わり以下のコードブロックを使用 ---- start
            List <DTRow> listRow = this._rows.FindAll(
                delegate(DTRow row)
            {
                if ((row.RowState & rowState) != 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
                );
            // ------------------------------------------- end

            // List型⇒DTRows型に行をコピーする
            DTRows rows = new DTRows(this._tblStat, this._cols);

            foreach (DTRow row in listRow)
            {
                // 元の行ステータスを退避させる
                workState = row.RowState;

                // DTRowsに行を追加する
                rows.Add(row);

                // 行ステータスを元に戻す
                row.RowState = workState;
            }

            // 行リストを返す
            return(rows);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 指定したステータスの行を検索する
        /// </summary>
        /// <param name="rowState">行ステータス</param>
        /// <returns>指定したステータスの行</returns>
        /// <remarks>行ステータスは論理和演算で複数条件の指定が可能</remarks>
        public DTRows Find(DataRowState rowState)
        {
            DataRowState workState;     // 行ステータスの退避用

            // List型として、指定したステータスの行を取得する

            // .NET Framework 3.5 以降で開発する場合は
            // 以下の行のコメントを解除できます。
            //    List<DTRow> listRow = this._rows.Where<DTRow>(row => (row.RowState & rowState) != 0).ToList<DTRow>();

            // .NET Framework 2.0 以前で開発する場合は
            // 上記に代わり以下のコードブロックを使用 ---- start
            List<DTRow> listRow = this._rows.FindAll(
                delegate(DTRow row)
                {
                    if ((row.RowState & rowState) != 0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            );
            // ------------------------------------------- end

            // List型⇒DTRows型に行をコピーする
            DTRows rows = new DTRows(this._tblStat, this._cols);
            foreach (DTRow row in listRow)
            {
                // 元の行ステータスを退避させる
                workState = row.RowState;

                // DTRowsに行を追加する
                rows.Add(row);

                // 行ステータスを元に戻す
                row.RowState = workState;
            }

            // 行リストを返す
            return rows;
        }
Ejemplo n.º 5
0
        /// <summary>コンストラクタ</summary>
        /// <param name="tblName">表名</param>
        public DTTable(string tblName)
        {
            // 表名の文字制限(正規表現チェックだが、
            // コンバートのことを考え棟梁部品は使用しない。)
            Regex rgx = new Regex("^[a-zA-Z0-9_-]+$");
            Match mch = rgx.Match(tblName);
            
            if (mch.Success)
            {
                // 表名が正しい

                // 表名を設定
                this._tblName = tblName;

                // 循環参照にならないように、表情報の共有オブジェクトを渡す。
                this._cols = new DTColumns(this._tblStat);
                this._rows = new DTRows(this._tblStat, this._cols);
            }
            else
            {
                // 表名が不正
                throw new Exception(
                    "A table name is inaccurate. "
                    + " Regular expression of the character which can be used:"
                    + " \"^[a-zA-Z0-9_-]+$\"");
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 指定したステータスの行を検索する
        /// </summary>
        /// <param name="rowState">行ステータス</param>
        /// <returns>指定したステータスの行</returns>
        /// <remarks>行ステータスは論理和演算で複数条件の指定が可能</remarks>
        public DTRows Find(DataRowState rowState)
        {
            DataRowState workState;     // 行ステータスの退避用

            // List型として、指定したステータスの行を取得する
            List<DTRow> listRow = this._rows.Where<DTRow>(row => (row.RowState & rowState) != 0).ToList<DTRow>();

            // List型⇒DTRows型に行をコピーする
            DTRows rows = new DTRows(this._tblStat, this._cols);
            foreach (DTRow row in listRow)
            {
                // 元の行ステータスを退避させる
                workState = row.RowState;

                // DTRowsに行を追加する
                rows.Add(row);

                // 行ステータスを元に戻す
                row.RowState = workState;
            }

            // 行リストを返す
            return rows;
        }