zoukankan      html  css  js  c++  java
  • 关于DataAdapter 的int Fill(int startRecord, int maxRecords, params DataTable[] dataTables)方法

    其实如果分页不需要很高很高的性能的话,完全可以使用
    DataAdapter.Fill(int startRecord, int maxRecords, params DataTable[] dataTables)方法

    原理是
    while (0 < startRecord)
          
    {
                
    if (!container1.Read())
                
    {
                      
    return 0;
                }

                startRecord
    --;
          }

          
    int num1 = 0;
          
    if (0 < maxRecords)
          
    {
                
    while ((num1 < maxRecords) && container1.Read())
                
    {
                      
    if (this._hasFillErrorHandler)
                      
    {
                            
    try
                            
    {
                                  mapping.LoadDataRowWithClear();
                                  num1
    ++;
                            }

                            
    catch (Exception exception1)
                            
    {
                                  
    if (!ADP.IsCatchableExceptionType(exception1))
                                  
    {
                                        
    throw;
                                  }

                                  ADP.TraceExceptionForCapture(exception1);
                                  
    this.OnFillErrorHandler(exception1, mapping.DataTable, mapping.DataValues);
                            }

                            
    continue;
                      }

                      mapping.LoadDataRow();
                      num1
    ++;
                }

                
    return num1;
          }

    这个是 reflector出来的代码,我们可以看到,他使用datareader.Read到指定的行数。
    按理来说,Read方法不怎么消耗时间。如果对访问速度要求不是极其苛刻的话,
    这个方法完全是可以使用的。
    这样不会导致返回的DataTable或者 DataSet太大。
    其实,几千条的数据,应该也没有几个人会有耐心看完。

  • 相关阅读:
    vue过滤器
    laravel service provider(服务提供器)使用场景
    laravel下视图间共享数据的两种方法
    【实例】laravel给所有视图共享数据
    Java并发(八)计算线程池最佳线程数
    mybatis-plus多表联合分页查询
    MybatisPlusException: can not find lambda cache for this entity[]异常解决
    Swagger2学习——@ApiImplicitParams注解
    Spring Validation 校验
    SpringBoot:通过多个Context限制Bean的活动范围
  • 原文地址:https://www.cnblogs.com/wildfish/p/347804.html
Copyright © 2011-2022 走看看