2

我正在使用 .Net 4.5 Framework 开发 Web 应用程序。我正在从 oracle 数据库中的表中填充网格视图。该表很大,有近 73,000 条记录,每条记录有 5 列。加载表的响应时间约为 4 分钟。我目前正在使用 ADO.Net 的连接架构方法进行填充。我想要一种减少响应时间的方法。

检索代码

 public DataTable RetrieveManufacturerDetails() {
    try {
      OpenDBConnection();
      objDataTable = new DataTable();
      objTrans = objCon.BeginTransaction();
      objCommand = new OracleCommand("SP_GET_MANUFACTURER_DETAILS", objCon);
      objCommand.CommandType = CommandType.StoredProcedure;
      objCommand.Parameters.Add("cManufacturer", OracleType.Cursor).Direction = ParameterDirection.Output;
      objCommand.Transaction = objTrans;
      objDataAdapter.SelectCommand = objCommand;
      objDataAdapter.Fill(objDataTable);
      objTrans.Commit();
      return objDataTable;
    } catch (Exception Ex) {
      objTrans.Rollback();
      throw Ex;
    } finally {
      objCommand.Dispose();
      objCon.Close();
    }
  }

存储过程:

create or replace PROCEDURE SP_GET_MANUFACTURER_DETAILS(cManufacturer OUT sys_refcursor )
AS
BEGIN

  OPEN cManufacturer 
  FOR
  SELECT MANUFACTURE_CODE AS "Manufcode", 
         MANUFACTURE_NAME AS "Manufname", 
         VENDOR_ACCOUNT_GROUP AS "Ktokk", 
         CITY AS "City", 
         POST_CODE AS "Postcode" 
   FROM MATERIAL_MANUFACTURE_INFO ;

END SP_GET_MANUFACTURER_DETAILS;
4

1 回答 1

0

我怀疑您的问题是将 73k 行添加到数据网格视图中的延迟,而不是在数据库检索中。

有了这么多结果,您将需要实现虚拟模式网格视图。这意味着它只加载您可以看到的结果。

用一个简单的实现检查这个链接。

http://www.codeproject.com/Articles/23937/Paging-Data-with-DataGridView-in-VirtualMode

于 2016-02-19T13:39:47.237 回答