我有大量数据(一个包含 20000 条记录的 sql 查询),用这些数据填充我的数据网格需要 10 分钟,这是我的 gridview 定义:
<asp:GridView ID="g" runat="server" Height="113px" Width="817px"
BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px"
CellPadding="3" GridLines="Vertical" AllowPaging="True" Font-Size="Small"
PageSize="30">
<AlternatingRowStyle BackColor="#DCDCDC" />
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#0000A9" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#000065" />
<PagerStyle cssClass="gridpager" HorizontalAlign="Left" />
</asp:GridView>
正如你所看到的,我已经启用了 AllowPaging 属性。
这就是我绑定数据的方式:
DataSet dts = new DataSet();
OracleDataAdapter oad = new OracleDataAdapter(query, co.conn);
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
OracleDataReader reader = cmd.ExecuteReader();
oad.Fill(dts);
g.DataSource = dts.Tables[0];
g.DataBind();
我怎样才能提高性能?
当我填充数据集时 (oad.Fill(dts);) 需要 10 分钟才能完成。这是因为我一次设置了20000条记录吗?有没有办法只显示前 30 条记录并在用户对 gridview 进行分页时调用数据?还有其他方法可以提高性能吗?