C# 缓慢加载Datagridview

C# 缓慢加载Datagridview,c#,sql-server,entity-framework,datagridview,C#,Sql Server,Entity Framework,Datagridview,我首先使用实体框架模型将sql查询的结果加载到DatagridView中 我知道这个方法是错误的,但是这个方法在我的大学里被展示过。如何优化数据加载?我应该构建数据表吗?在5-7秒内加载的记录少于1000条 IVCEntities db=新的IVCEntities; System.Data.SqlClient.SqlParameter nnar= 新建System.Data.SqlClient。SqlParameter@nnar,numnary; var view=db.Database.Sql

我首先使用实体框架模型将sql查询的结果加载到DatagridView中

我知道这个方法是错误的,但是这个方法在我的大学里被展示过。如何优化数据加载?我应该构建数据表吗?在5-7秒内加载的记录少于1000条

IVCEntities db=新的IVCEntities; System.Data.SqlClient.SqlParameter nnar= 新建System.Data.SqlClient。SqlParameter@nnar,numnary; var view=db.Database.SqlQueryselect*from Reestr,其中状态为“Printed”,NumNar=@nnar,nnar; 视图中的foreach var v { DataGridViewRow行=新DataGridViewRow; row.CreateCellsdgvView; row.Cells[0]。Value=v.NumNar.ToString.substring 5; row.Cells[1]。Value=v.TabNum; 行。单元格[2]。值=v.状态; row.Cells[3]。Value=v.Detal; row.Cells[4]。Value=v.DateForm.ToShortDateString; row.Cells[5]。Value=v.Naladchik; dgvView.Rows.Addrow; } 您可以使用:

dgvView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing; 
如果它仍然加载缓慢,最好使用

dgvView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; 
和使用:

dgvView.RowHeadersVisible = false;

数据绑定后,您可以重新启用上述功能:

@TaW,抱歉,view-sqlqueryy您可以收集要添加的行,并使用它们一次性添加所有行。但一般来说,是的,将数据填充到DataTable并绑定到它是推荐的方式。速度取决于数据库的大小以及数据库和c之间的数据传输量。在不知道尺寸的情况下,很难确定时间是否是由DGV负载引起的。如果不确定它不是数据库大小或传输的数据量,我不会做任何假设。SQL中的datatable可能有10000列,但仍返回1000条记录,而数据库可能有100000000条记录。@TaW,对于我愚蠢的问题,我感到非常抱歉,但你能建议我吗。如何绑定sqlQuery视图和DataTable的结果?不,您应该先填充DataTable!无任何更改,请尝试以下操作,必须工作dgvView.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.None;dgvView.ColumnHeadersWeightSizeMode=DataGridViewColumnHeadersWeightSizeMode.DisableResizing;