在虚拟模式下,我的数据网格视图在多次加载时会结渣



我使用带缓存的虚拟模式在WinForms应用程序中加载我的数据网格视图,使用此处可用的相同代码

更改了SupplyData功能,可以搜索以下的数据

public DataTable SupplyPageOfData(int lowerPageBoundary, int rowsPerPage)
{
// Store the name of the ID column. This column must contain unique 
// values so the SQL below will work properly.
columnToSortBy = this.Columns[0].ColumnName;
//if (!this.Columns[columnToSortBy].Unique)
//{
//    throw new InvalidOperationException(String.Format(
//        "Column {0} must contain unique values.", columnToSortBy));
//}
// Retrieve the specified number of rows from the database, starting
// with the row specified by the lowerPageBoundary parameter.
command.CommandText = "Select CPNum, strftime('%d-%m-%Y', CPEdtDate) AS CPEdtDate From " + tableName + " WHERE CPNum LIKE '%" + search + "%' AND " + columnToSortBy + " NOT IN (SELECT " + columnToSortBy + " From " +
tableName + " WHERE CPNum LIKE '%" + search + "%' Order By " + columnToSortBy + " LIMIT " + lowerPageBoundary + ") Order By " + columnToSortBy + " LIMIT " + rowsPerPage;
adapter.SelectCommand = command;
DataTable table = new DataTable();
table.Locale = CultureInfo.InvariantCulture;
adapter.Fill(table);
return table;
}

当重新加载网格时,我使用以下代码

DataRetriever retriever =
new DataRetriever(connectionString, table, search);
memoryCache = new Cache(retriever, 16);
foreach (DataColumn column in retriever.Columns)
{
if (!masterChartGrid.Columns.Contains(column.ColumnName))
{
masterChartGrid.Columns.Add(
column.ColumnName, "Edition Date");
}
}
masterChartGrid.Rows.Clear();
this.masterChartGrid.RowCount = retriever.RowCount;

它可以很好地搜索数据。但是,当我再次尝试重置搜索和重新加载表时,应用程序将变得没有响应。

当我从.cs文件以编程方式添加DataGridView时,它就工作了。

private DataGridView masterChartGrid = new DataGridView();

最新更新