Пример #1
0
 /// <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;
     }
 }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
    /// <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 );
    }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
        /// <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);
            }
        }