/// <summary> /// 异步加载数据到 DataTable /// </summary> /// <param name="startRecord">要填充的起始记录位置</param> /// <param name="maxRecords">最多填充的记录条数</param> /// <param name="token">取消指示</param> /// <returns>填充好的 DataTable</returns> public async Task <DataTable> LoadDataTableAsync(int startRecord, int maxRecords, CancellationToken token = default) { try { return(await DataTableAdapter.FillDataTableAsync(DataReader, startRecord, maxRecords)); } catch (Exception exception) { OnException(exception); throw; } }
/// <summary> /// 创建数据库查询执行上下文 /// </summary> /// <param name="dataReader">用于读取数据的 IDataReader 对象</param> /// <param name="tracing">用于追踪此次查询过程的追踪器</param> /// <param name="sync">用于同步的对象,如果有的话</param> /// protected DbExecuteContextBase(IDataReader dataReader, IDbTracing tracing = null, object sync = null) { DataReader = dataReader ?? throw new ArgumentNullException(nameof(dataReader)); SyncRoot = sync; Tracing = tracing; DataTableAdapter = new DataTableAdapter(); if (SyncRoot != null) { Monitor.Enter(SyncRoot); } }
/// <summary> /// 创建数据库查询执行上下文 /// </summary> /// <param name="dataReader">用于读取数据的 IDataReader 对象</param> /// <param name="tracing">用于追踪此次查询过程的追踪器</param> /// <param name="connectionResource">销毁该上下文时,需要同时销毁的连接资源</param> /// <param name="sync">用于同步的对象,如果有的话</param> protected DbExecuteContextBase( IDataReader dataReader, IDbTracing tracing = null, IDisposable connectionResource = null, object sync = null ) { if ( dataReader == null ) throw new ArgumentNullException( "dataReader" ); SyncRoot = sync; DataReader = dataReader; ConnectionResource = connectionResource; Tracing = tracing; DataTableAdapter = new DataTableAdapter(); if ( SyncRoot != null ) Monitor.Enter( SyncRoot ); }
/// <summary> /// 创建数据库查询执行上下文 /// </summary> /// <param name="dataReader">用于读取数据的 IDataReader 对象</param> /// <param name="tracing">用于追踪此次查询过程的追踪器</param> /// <param name="connectionResource">销毁该上下文时,需要同时销毁的连接资源</param> /// <param name="sync">用于同步的对象,如果有的话</param> protected DbExecuteContextBase(IDataReader dataReader, IDbTracing tracing = null, IDisposable connectionResource = null, object sync = null) { if (dataReader == null) { throw new ArgumentNullException("dataReader"); } SyncRoot = sync; DataReader = dataReader; ConnectionResource = connectionResource; Tracing = tracing; DataTableAdapter = new DataTableAdapter(); if (SyncRoot != null) { Monitor.Enter(SyncRoot); } }
/// <summary> /// 创建数据库查询执行上下文 /// </summary> /// <param name="dataReader">用于读取数据的 IDataReader 对象</param> /// <param name="tracing">用于追踪此次查询过程的追踪器</param> /// <param name="disposeMethod">销毁上下文时要执行的方法</param> /// <param name="sync">用于同步的对象,如果有的话</param> protected DbExecuteContextBase(IDataReader dataReader, IDbTracing tracing = null, Action disposeMethod = null, object sync = null) { if (dataReader == null) { throw new ArgumentNullException("dataReader"); } SyncRoot = sync; this.disposeMethod = disposeMethod; DataReader = dataReader; Tracing = tracing; DataTableAdapter = new DataTableAdapter(); if (SyncRoot != null) { Monitor.Enter(SyncRoot); } }