/// <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_-]+$\""); } }
/// <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); }
/// <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); }
/// <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; }
/// <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; }