Click here to Skip to main content
Email Password   helpLost your password?

Achieve performance while updating a datatable bound to a bindingsource or datagridview

0
answers
3.0/5
1 vote
732
views
Tags: C#, .NET, ADO.NET

Datatable in ADO.NET is highly useful to do in memory data related operations. But it is very painful to update data when it is bound to a datagridview or bindingsource.

While I was developing an application in .NET with C#, I came across this problem in which I had to modify a data table of 100000 records. It took lots of time to update the entire table. I Googled how best I could to come out of this problem. Everywhere I got suggestions to set the below mentioned properties before and after updation:

 BindingSource bs = new BindingSource();
DataTable dt = new DataTable();

bs.DataSource = dt;
bs.SuspendBinding();
bs.RaiseListChangedEvents = false;
dt.BeginLoadData();

//== some modification on data table
dt.EndLoadData();
bs.RaiseListChangedEvents = true;
bs.ResumeBinding();
bs.ResetBindings(true);

The above code snippet performed OK compared to simple updation of datatable without setting properties. Still I wanted to achieve more performance while modifying datatable.
Upon investigation, I could achieve it by setting the filter property of binding source.

  
BindingSource bs = new BindingSource();
DataTable dt = new DataTable();

bs.DataSource = dt;
bs.SuspendBinding();
bs.RaiseListChangedEvents = false;
bs.Filter = "1=0";
dt.BeginLoadData();

//== some modification on data table
dt.EndLoadData();
bs.RaiseListChangedEvents = true;
bs.Filter = "";
Posted 31 Jan '10 5:31 PM
Ravi LVS
Rep: (284)
Edited 15 Feb '10 11:51 PM
Deeksha Shenoy
Rep: 17,243 (17,774)
|

Discussions and Feedback

Comment Visit to post and view comments on this entry, or click here to get a print view with messages.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

You must Sign In to use this message board.
 
 
Per page   
  
-- There are no messages in this forum --


Last Updated 26 Mar 2009 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2010