2012-04-21 81 views
0

我在MDIChild形式,我会通过调用下面的函数形式上载自定义的datagridview,OutOfMemoryException异常在MDIChild

private void FillDetails() 
    { 
     dgvDefCofig.DataSource = dbLayer.tblDefConfigSelectAll().Tables[0]; 
     var columnheaderstyle = new DataGridViewCellStyle(); 
     columnheaderstyle.Font = new Font("Arial", 9, FontStyle.Regular); 
     dgvDefCofig.ColumnHeadersDefaultCellStyle = columnheaderstyle; 
     dgvDefCofig.Columns[dgvDefCofig.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
     SetLineColumnDetails("ID", "", 0, DataGridViewContentAlignment.MiddleLeft, false); 
     SetLineColumnDetails("DC_NoOfSmallBoxes", "No of Boxes", 50, DataGridViewContentAlignment.MiddleLeft, true); 
     SetLineColumnDetails("DC_LabelPath", "Label path", 250, DataGridViewContentAlignment.MiddleLeft, true); 
     SetLineColumnDetails("DC_Active", "Active", 100, DataGridViewContentAlignment.MiddleRight, true); 
     SetLineColumnDetails("DC_InsertedDateTime", "Inserted Date", 100, DataGridViewContentAlignment.MiddleRight, true); 
     SetLineColumnDetails("DC_ProdDate", "Producation Date", 100, DataGridViewContentAlignment.MiddleRight, true); 
     SetLineColumnDetails("DC_ProdShift", "Shift", 0, DataGridViewContentAlignment.MiddleRight, false); 
     SetLineColumnDetails("DC_CreatedBy", "Created By", 0, DataGridViewContentAlignment.MiddleRight, false); 
     SetLineColumnDetails("DC_LastUpdateDate", "Last Updated", 0, DataGridViewContentAlignment.MiddleRight, false); 
     SetLineColumnDetails("DC_LastUpdatedBy", "Lase Updated By", 100, DataGridViewContentAlignment.MiddleRight, true); 
    } 

    public void SetLineColumnDetails(string columnName, string headertext, int width, 
            DataGridViewContentAlignment alignment, bool visible) 
    { 
     dgvDefCofig.Columns[columnName].Visible = visible; 
     dgvDefCofig.Columns[columnName].HeaderText = headertext; 
     dgvDefCofig.Columns[columnName].Width = width; 
     dgvDefCofig.Columns[columnName].DefaultCellStyle.Alignment = alignment; 
    } 

但是,我收到“OutOfMemoryException异常”。当我删除上述方法时,应用程序工作正常。 为什么发生?

回答

0

发生,这最probabbly

dgvDefCofig.DataSource = dbLayer.tblDefConfigSelectAll().Tables[0]; 

推这么多的数据来DataGrid,使您的应用程序爆炸。

您在屏幕上加载的数据量有限,更多“切片”SQL查询。

+0

感谢您的评论。但是,在选择查询少于10个细节会来。就这样。其他可能性是什么? – Olivarsham 2012-04-21 09:49:38

相关问题