Exemplo n.º 1
0
        private CachedResults CreateCachedResults(string sql)
        {
            try {
                //Commandオブジェクトを生成する
                DbCommand aDbCommand = this.CreateDbCommand(sql, _aDbConnection, _aDbTransaction);
                //ResultsオブジェクトがDisposeされていなければ、Disposeする
                this.DisposeResults();

                //時間計測開始
                if (_debugPrint)
                {
                    _stopwatch.Reset();
                    _stopwatch.Start();
                }

                //データセットに結果レコードを格納する
                DataAndInfoTable aDataTable = new DataAndInfoTable(aDbCommand.ExecuteReader());

                //時間計測終了
                if (_debugPrint)
                {
                    _stopwatch.Stop();
                    Trace.WriteLine("[" + _stopwatch.ElapsedMilliseconds.ToString() + "ms]" + Environment.NewLine);
                }

                //SQLを実行しDataTableオブジェクトをCachedResultsオブジェクトに格納して返す
                return(new CachedResults(aDataTable));
            } catch (Exception ex) {
                throw new DbAccessException("SELECT文の実行に失敗しました.", sql, ex);
            }
        }
Exemplo n.º 2
0
 protected override void DisposeImp(bool disposing)
 {
     if (_aDataTable != null)
     {
         _aDataTable.Dispose();
         _aDataTable = null;
     }
 }
Exemplo n.º 3
0
 public CachedResults(DataAndInfoTable aDataTable)
 {
     _aDataTable = aDataTable;
     _maxRows    = _aDataTable.Rows.Count;
     _rowPos     = -1;
 }