| Your reason for this vote: |
|
|
0
answers
|
3.0/5
1 vote
|
732
views
|
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();
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();
dt.EndLoadData();
bs.RaiseListChangedEvents = true;
bs.Filter = "";
Posted 31 Jan '10 5:31 PM
Edited 15 Feb '10 11:51 PM
Discussions and Feedback
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)