473,748 Members | 7,118 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Loading DataGrid with Performance Issues

I've been bothered for some time about my DataGrid not populating my rows
very quickly. I have about 10K rows loading into the grid.

I create a datatable dt with 2 columns, an ID and a display. The ID is a
member of the keys array.
I then create a DataView dv over the table, and sort it by Display and ID
column (in case of duplicate Display).
I then set my DataGrid.DataSo urce = dv;

I then load the datatable with my rows, and this is what I find is very
interesting, and any explanation would be very appreciated:

When the form loads, I call a method LoadList(). In this method, I test to
see if the DataGrid.DataSo urce is null, and then I set it if TRUE.
If the DataGrid.DataSo urce has already been set, then I leave it alone.
I retrieve the datatable from the source, and load the table.

I can also call LoadList from a user request to refresh the grid.

At the Form.Load the rows are added very quickly to my datatable.
At the user request, the rows are added at a factor of speed over 1000x
slower, and the speed decreases as n, the number of rows, increases.

I then removed my test to see if the DataGrid.DataSo urce is null, and now I
RESET the datasource each time the LoadList() method is called. So, I
recreate my DataTable, Styles each time. And, my speed is lightning fast
again. Apart from resetting the datasource, all the code is the same.

I have a feeling that it could be related to either sorting, or some kind of
event handling firing for each row in the grid each time the grid is added
to. It has to be something related to the size of n... but I don't know
what it could be. Anyone with any experience with this?


Nov 17 '05 #1
5 12236
John,

You are pretty much right in your guess. What you want to do is set the
data source to null, or create a new instance of the table/view, and then
bind to that.

The reason for the slowdown is that every row that is modified in some
way will have to be refreshed in the grid somehow (every change triggers a
refresh of the view). On top of that, the sorting might be affected, as you
suspect.

So, just create a new table/view, and then attach that to the data
source. Don't bother trying to update the original when you know you are
going to bulk load the data (if you were changing a handful of values, I
would say this is fine, but since you are essentially changing everything in
the table, it's a bad idea).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:%2******** ********@TK2MSF TNGP10.phx.gbl. ..
I've been bothered for some time about my DataGrid not populating my rows
very quickly. I have about 10K rows loading into the grid.

I create a datatable dt with 2 columns, an ID and a display. The ID is a
member of the keys array.
I then create a DataView dv over the table, and sort it by Display and ID
column (in case of duplicate Display).
I then set my DataGrid.DataSo urce = dv;

I then load the datatable with my rows, and this is what I find is very
interesting, and any explanation would be very appreciated:

When the form loads, I call a method LoadList(). In this method, I test
to see if the DataGrid.DataSo urce is null, and then I set it if TRUE.
If the DataGrid.DataSo urce has already been set, then I leave it alone.
I retrieve the datatable from the source, and load the table.

I can also call LoadList from a user request to refresh the grid.

At the Form.Load the rows are added very quickly to my datatable.
At the user request, the rows are added at a factor of speed over 1000x
slower, and the speed decreases as n, the number of rows, increases.

I then removed my test to see if the DataGrid.DataSo urce is null, and now
I RESET the datasource each time the LoadList() method is called. So, I
recreate my DataTable, Styles each time. And, my speed is lightning fast
again. Apart from resetting the datasource, all the code is the same.

I have a feeling that it could be related to either sorting, or some kind
of event handling firing for each row in the grid each time the grid is
added to. It has to be something related to the size of n... but I don't
know what it could be. Anyone with any experience with this?

Nov 17 '05 #2
Thanks for the reply, but I am still a bit confused or maybe just annoyed.
Isn't there a way to achieve the same result without re-assigning a new
datatable? There seems to be a wealth of methods/properties for indicating
that event handling should be suspended. The following is my preparation
before loading the grid, and I guess I'm surprised that it isn't enough:

CurrencyManager c = this.BindingCon text[this.DataSource] as CurrencyManager ;
if (c != null)
c.SuspendBindin g();
this.SuspendLay out
this.Visible = fa;se
dt.BeginLoadDat a
dt.Clear
....Loading here

and the display is still being updated after each row is being added?!
haha. What I find confusing, I guess, is that the datasource is already set
to the grid when I load it, so regardless of whether or not there were
already rows in the grid or not should not seemingly affect the loading of
the table? And if it's the sorting, then I understand it even less.

Although I already know the solution, I really hate it when I don't
understand why. I guess there is some kind of optimizations happening under
the hood that have a negative impact in this case. Oh well.

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c om> wrote in
message news:OY******** ********@TK2MSF TNGP14.phx.gbl. ..
John,

You are pretty much right in your guess. What you want to do is set
the data source to null, or create a new instance of the table/view, and
then bind to that.

The reason for the slowdown is that every row that is modified in some
way will have to be refreshed in the grid somehow (every change triggers a
refresh of the view). On top of that, the sorting might be affected, as
you suspect.

So, just create a new table/view, and then attach that to the data
source. Don't bother trying to update the original when you know you are
going to bulk load the data (if you were changing a handful of values, I
would say this is fine, but since you are essentially changing everything
in the table, it's a bad idea).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:%2******** ********@TK2MSF TNGP10.phx.gbl. ..
I've been bothered for some time about my DataGrid not populating my rows
very quickly. I have about 10K rows loading into the grid.

I create a datatable dt with 2 columns, an ID and a display. The ID is a
member of the keys array.
I then create a DataView dv over the table, and sort it by Display and ID
column (in case of duplicate Display).
I then set my DataGrid.DataSo urce = dv;

I then load the datatable with my rows, and this is what I find is very
interesting, and any explanation would be very appreciated:

When the form loads, I call a method LoadList(). In this method, I test
to see if the DataGrid.DataSo urce is null, and then I set it if TRUE.
If the DataGrid.DataSo urce has already been set, then I leave it alone.
I retrieve the datatable from the source, and load the table.

I can also call LoadList from a user request to refresh the grid.

At the Form.Load the rows are added very quickly to my datatable.
At the user request, the rows are added at a factor of speed over 1000x
slower, and the speed decreases as n, the number of rows, increases.

I then removed my test to see if the DataGrid.DataSo urce is null, and now
I RESET the datasource each time the LoadList() method is called. So, I
recreate my DataTable, Styles each time. And, my speed is lightning fast
again. Apart from resetting the datasource, all the code is the same.

I have a feeling that it could be related to either sorting, or some kind
of event handling firing for each row in the grid each time the grid is
added to. It has to be something related to the size of n... but I
don't know what it could be. Anyone with any experience with this?


Nov 17 '05 #3
John,

There might be, but honestly, it isn't worth it. What do you achieve by
NOT assigning a new data table? You end up with a bunch of extra code to
perform virtually the same operation (or at the least, which has pretty much
the same effect).

Suspending the binding, the layout, setting the visibility of the grid
to false... It's all excessive.

If you are insistent on not changing the data source, then check out the
BeginInit and EndInit methods on the data grid. They may help, as they are
the implementations to ISupportInitial ize, which is meant to help with the
batch setting of properties.

If you are using .NET 2.0, then this documentation from the
SuspendBinding method should help as well:

This method prevents changes from being pushed into the data source but does
not prevent changes in the data source from affecting the bound controls.
Controls that use complex data binding, such as the DataGridView control,
update their values based on change events such as the ListChanged event.
Calling this method will not prevent these events from occurring. If you
need to suspend change events, you can bind your controls to a BindingSource
object and set the RaiseListChange dEvents property to false.

One would think that BeginLoadData and EndLoadData on the data table
would help here, but it doesn't prevent the change events from firing, so
they don't help.

Just curious, why do you not want to just bind to a new table?

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:uU******** ******@TK2MSFTN GP12.phx.gbl...
Thanks for the reply, but I am still a bit confused or maybe just annoyed.
Isn't there a way to achieve the same result without re-assigning a new
datatable? There seems to be a wealth of methods/properties for
indicating that event handling should be suspended. The following is my
preparation before loading the grid, and I guess I'm surprised that it
isn't enough:

CurrencyManager c = this.BindingCon text[this.DataSource] as
CurrencyManager ;
if (c != null)
c.SuspendBindin g();
this.SuspendLay out
this.Visible = fa;se
dt.BeginLoadDat a
dt.Clear
...Loading here

and the display is still being updated after each row is being added?!
haha. What I find confusing, I guess, is that the datasource is already
set to the grid when I load it, so regardless of whether or not there were
already rows in the grid or not should not seemingly affect the loading of
the table? And if it's the sorting, then I understand it even less.

Although I already know the solution, I really hate it when I don't
understand why. I guess there is some kind of optimizations happening
under the hood that have a negative impact in this case. Oh well.

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c om> wrote
in message news:OY******** ********@TK2MSF TNGP14.phx.gbl. ..
John,

You are pretty much right in your guess. What you want to do is set
the data source to null, or create a new instance of the table/view, and
then bind to that.

The reason for the slowdown is that every row that is modified in some
way will have to be refreshed in the grid somehow (every change triggers
a refresh of the view). On top of that, the sorting might be affected,
as you suspect.

So, just create a new table/view, and then attach that to the data
source. Don't bother trying to update the original when you know you are
going to bulk load the data (if you were changing a handful of values, I
would say this is fine, but since you are essentially changing everything
in the table, it's a bad idea).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:%2******** ********@TK2MSF TNGP10.phx.gbl. ..
I've been bothered for some time about my DataGrid not populating my
rows very quickly. I have about 10K rows loading into the grid.

I create a datatable dt with 2 columns, an ID and a display. The ID is
a member of the keys array.
I then create a DataView dv over the table, and sort it by Display and
ID column (in case of duplicate Display).
I then set my DataGrid.DataSo urce = dv;

I then load the datatable with my rows, and this is what I find is very
interesting, and any explanation would be very appreciated:

When the form loads, I call a method LoadList(). In this method, I test
to see if the DataGrid.DataSo urce is null, and then I set it if TRUE.
If the DataGrid.DataSo urce has already been set, then I leave it alone.
I retrieve the datatable from the source, and load the table.

I can also call LoadList from a user request to refresh the grid.

At the Form.Load the rows are added very quickly to my datatable.
At the user request, the rows are added at a factor of speed over 1000x
slower, and the speed decreases as n, the number of rows, increases.

I then removed my test to see if the DataGrid.DataSo urce is null, and
now I RESET the datasource each time the LoadList() method is called.
So, I recreate my DataTable, Styles each time. And, my speed is
lightning fast again. Apart from resetting the datasource, all the code
is the same.

I have a feeling that it could be related to either sorting, or some
kind of event handling firing for each row in the grid each time the
grid is added to. It has to be something related to the size of n...
but I don't know what it could be. Anyone with any experience with
this?



Nov 17 '05 #4
I actually don't care about creating a new DataTable, and I've already
switched it that way (much to the relief of my users, no doubt). The reason
it was done this way is historical... I used to use the Infragistics grid,
but it was old and buggy with certain things, so I replaced it with the
DataGrid. With the Inf. grid, resetting the datasource would reset the
layout (column widths, specifically), which wasn't desirable, and
clearing/reloading the Datatable was fast. The slowness is really
unexpected with the MS datagrid.

I agree with the code being excessive. TBH, some of it is debugging code to
figure out how to get it to load faster. I'll probably remove it now.

As for sending ListChanged events, because I set the datasource BEFORE
loading the grid in both cases, I don't quite see how having a new datatable
or a cleared datatable would make such a dramatic difference in loading
times (ie: they should both be slow!?). I'm going to chalk it up to a
gotcha, and remember it for the next time.

Thanks alot for the feedback, though.

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c om> wrote in
message news:%2******** ********@TK2MSF TNGP12.phx.gbl. ..
John,

There might be, but honestly, it isn't worth it. What do you achieve
by NOT assigning a new data table? You end up with a bunch of extra code
to perform virtually the same operation (or at the least, which has pretty
much the same effect).

Suspending the binding, the layout, setting the visibility of the grid
to false... It's all excessive.

If you are insistent on not changing the data source, then check out
the BeginInit and EndInit methods on the data grid. They may help, as
they are the implementations to ISupportInitial ize, which is meant to help
with the batch setting of properties.

If you are using .NET 2.0, then this documentation from the
SuspendBinding method should help as well:

This method prevents changes from being pushed into the data source but
does not prevent changes in the data source from affecting the bound
controls. Controls that use complex data binding, such as the DataGridView
control, update their values based on change events such as the
ListChanged event. Calling this method will not prevent these events from
occurring. If you need to suspend change events, you can bind your
controls to a BindingSource object and set the RaiseListChange dEvents
property to false.

One would think that BeginLoadData and EndLoadData on the data table
would help here, but it doesn't prevent the change events from firing, so
they don't help.

Just curious, why do you not want to just bind to a new table?

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:uU******** ******@TK2MSFTN GP12.phx.gbl...
Thanks for the reply, but I am still a bit confused or maybe just
annoyed. Isn't there a way to achieve the same result without
re-assigning a new datatable? There seems to be a wealth of
methods/properties for indicating that event handling should be
suspended. The following is my preparation before loading the grid, and
I guess I'm surprised that it isn't enough:

CurrencyManager c = this.BindingCon text[this.DataSource] as
CurrencyManager ;
if (c != null)
c.SuspendBindin g();
this.SuspendLay out
this.Visible = fa;se
dt.BeginLoadDat a
dt.Clear
...Loading here

and the display is still being updated after each row is being added?!
haha. What I find confusing, I guess, is that the datasource is already
set to the grid when I load it, so regardless of whether or not there
were already rows in the grid or not should not seemingly affect the
loading of the table? And if it's the sorting, then I understand it even
less.

Although I already know the solution, I really hate it when I don't
understand why. I guess there is some kind of optimizations happening
under the hood that have a negative impact in this case. Oh well.

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c om> wrote
in message news:OY******** ********@TK2MSF TNGP14.phx.gbl. ..
John,

You are pretty much right in your guess. What you want to do is set
the data source to null, or create a new instance of the table/view, and
then bind to that.

The reason for the slowdown is that every row that is modified in
some way will have to be refreshed in the grid somehow (every change
triggers a refresh of the view). On top of that, the sorting might be
affected, as you suspect.

So, just create a new table/view, and then attach that to the data
source. Don't bother trying to update the original when you know you
are going to bulk load the data (if you were changing a handful of
values, I would say this is fine, but since you are essentially changing
everything in the table, it's a bad idea).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:%2******** ********@TK2MSF TNGP10.phx.gbl. ..
I've been bothered for some time about my DataGrid not populating my
rows very quickly. I have about 10K rows loading into the grid.

I create a datatable dt with 2 columns, an ID and a display. The ID is
a member of the keys array.
I then create a DataView dv over the table, and sort it by Display and
ID column (in case of duplicate Display).
I then set my DataGrid.DataSo urce = dv;

I then load the datatable with my rows, and this is what I find is very
interesting, and any explanation would be very appreciated:

When the form loads, I call a method LoadList(). In this method, I
test to see if the DataGrid.DataSo urce is null, and then I set it if
TRUE.
If the DataGrid.DataSo urce has already been set, then I leave it alone.
I retrieve the datatable from the source, and load the table.

I can also call LoadList from a user request to refresh the grid.

At the Form.Load the rows are added very quickly to my datatable.
At the user request, the rows are added at a factor of speed over 1000x
slower, and the speed decreases as n, the number of rows, increases.

I then removed my test to see if the DataGrid.DataSo urce is null, and
now I RESET the datasource each time the LoadList() method is called.
So, I recreate my DataTable, Styles each time. And, my speed is
lightning fast again. Apart from resetting the datasource, all the
code is the same.

I have a feeling that it could be related to either sorting, or some
kind of event handling firing for each row in the grid each time the
grid is added to. It has to be something related to the size of n...
but I don't know what it could be. Anyone with any experience with
this?




Nov 17 '05 #5
John,

While I can sympathize with your experience with the Infragistics grid,
the correlation you make is like saying all red objects are apples (the
point being, that most apples are red, but the inverse does not apply).

My assumption with you setting the data source was that you would
actually add a completely filled new table as your data source, preventing
the need for excessive updates to the grid upon each addition of a row to
the grid.

However, this doesn't make much of a difference. Clearing a table
actually requires a bit of overhead. It has to cycle through all the rows,
and set the properties of each row to dissociate it from the data table. It
also performs an operation where it cycles through every column, for every
row (producing an operation that takes R * C, without counting the
additional R operations). This can take a little bit of time, depending on
how large the data set is. For your initial example of 10K rows and 2
columns, thats 30K iterations just to clear.

Then, you have to take the time to re-load the data. If you use a new
table, you eliminate the cost from before. However, the overhead of the
events firing and the grid picking up on each change exists (for 10K
records, that's a lot of updates).

Compare that to just the initial rendering operation that you perform if
you load the data table separately (still R operations, but less than R * N
(where N is a constant cost of firing the change event which the data grid
picks up and acts on)), and then you set the data source to that table, it's
a big difference.

Hopefully, this is a little more along the lines of what you were
looking for.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:%2******** ********@TK2MSF TNGP14.phx.gbl. ..
I actually don't care about creating a new DataTable, and I've already
switched it that way (much to the relief of my users, no doubt). The
reason it was done this way is historical... I used to use the Infragistics
grid, but it was old and buggy with certain things, so I replaced it with
the DataGrid. With the Inf. grid, resetting the datasource would reset the
layout (column widths, specifically), which wasn't desirable, and
clearing/reloading the Datatable was fast. The slowness is really
unexpected with the MS datagrid.

I agree with the code being excessive. TBH, some of it is debugging code
to figure out how to get it to load faster. I'll probably remove it now.

As for sending ListChanged events, because I set the datasource BEFORE
loading the grid in both cases, I don't quite see how having a new
datatable or a cleared datatable would make such a dramatic difference in
loading times (ie: they should both be slow!?). I'm going to chalk it up
to a gotcha, and remember it for the next time.

Thanks alot for the feedback, though.

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c om> wrote
in message news:%2******** ********@TK2MSF TNGP12.phx.gbl. ..
John,

There might be, but honestly, it isn't worth it. What do you achieve
by NOT assigning a new data table? You end up with a bunch of extra code
to perform virtually the same operation (or at the least, which has
pretty much the same effect).

Suspending the binding, the layout, setting the visibility of the grid
to false... It's all excessive.

If you are insistent on not changing the data source, then check out
the BeginInit and EndInit methods on the data grid. They may help, as
they are the implementations to ISupportInitial ize, which is meant to
help with the batch setting of properties.

If you are using .NET 2.0, then this documentation from the
SuspendBinding method should help as well:

This method prevents changes from being pushed into the data source but
does not prevent changes in the data source from affecting the bound
controls. Controls that use complex data binding, such as the
DataGridView control, update their values based on change events such as
the ListChanged event. Calling this method will not prevent these events
from occurring. If you need to suspend change events, you can bind your
controls to a BindingSource object and set the RaiseListChange dEvents
property to false.

One would think that BeginLoadData and EndLoadData on the data table
would help here, but it doesn't prevent the change events from firing, so
they don't help.

Just curious, why do you not want to just bind to a new table?

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:uU******** ******@TK2MSFTN GP12.phx.gbl...
Thanks for the reply, but I am still a bit confused or maybe just
annoyed. Isn't there a way to achieve the same result without
re-assigning a new datatable? There seems to be a wealth of
methods/properties for indicating that event handling should be
suspended. The following is my preparation before loading the grid, and
I guess I'm surprised that it isn't enough:

CurrencyManager c = this.BindingCon text[this.DataSource] as
CurrencyManager ;
if (c != null)
c.SuspendBindin g();
this.SuspendLay out
this.Visible = fa;se
dt.BeginLoadDat a
dt.Clear
...Loading here

and the display is still being updated after each row is being added?!
haha. What I find confusing, I guess, is that the datasource is already
set to the grid when I load it, so regardless of whether or not there
were already rows in the grid or not should not seemingly affect the
loading of the table? And if it's the sorting, then I understand it
even less.

Although I already know the solution, I really hate it when I don't
understand why. I guess there is some kind of optimizations happening
under the hood that have a negative impact in this case. Oh well.

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c om> wrote
in message news:OY******** ********@TK2MSF TNGP14.phx.gbl. ..
John,

You are pretty much right in your guess. What you want to do is set
the data source to null, or create a new instance of the table/view,
and then bind to that.

The reason for the slowdown is that every row that is modified in
some way will have to be refreshed in the grid somehow (every change
triggers a refresh of the view). On top of that, the sorting might be
affected, as you suspect.

So, just create a new table/view, and then attach that to the data
source. Don't bother trying to update the original when you know you
are going to bulk load the data (if you were changing a handful of
values, I would say this is fine, but since you are essentially
changing everything in the table, it's a bad idea).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"John Richardson" <j3**********@h otmail.com> wrote in message
news:%2******** ********@TK2MSF TNGP10.phx.gbl. ..
> I've been bothered for some time about my DataGrid not populating my
> rows very quickly. I have about 10K rows loading into the grid.
>
> I create a datatable dt with 2 columns, an ID and a display. The ID
> is a member of the keys array.
> I then create a DataView dv over the table, and sort it by Display and
> ID column (in case of duplicate Display).
> I then set my DataGrid.DataSo urce = dv;
>
> I then load the datatable with my rows, and this is what I find is
> very interesting, and any explanation would be very appreciated:
>
> When the form loads, I call a method LoadList(). In this method, I
> test to see if the DataGrid.DataSo urce is null, and then I set it if
> TRUE.
> If the DataGrid.DataSo urce has already been set, then I leave it
> alone.
> I retrieve the datatable from the source, and load the table.
>
> I can also call LoadList from a user request to refresh the grid.
>
> At the Form.Load the rows are added very quickly to my datatable.
> At the user request, the rows are added at a factor of speed over
> 1000x slower, and the speed decreases as n, the number of rows,
> increases.
>
> I then removed my test to see if the DataGrid.DataSo urce is null, and
> now I RESET the datasource each time the LoadList() method is called.
> So, I recreate my DataTable, Styles each time. And, my speed is
> lightning fast again. Apart from resetting the datasource, all the
> code is the same.
>
> I have a feeling that it could be related to either sorting, or some
> kind of event handling firing for each row in the grid each time the
> grid is added to. It has to be something related to the size of n...
> but I don't know what it could be. Anyone with any experience with
> this?
>
>
>
>



Nov 17 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
5105
by: Matthew | last post by:
I am not the most talented programmer to grace the earth by a long shot. But I've got a gripe I need to air about the .NET implementaion of Visual Basic. I can live with alot of the major changes to the structure and syntax of the code but I thought the purpose of re-engineering the damn thing would result in improved performance all around, well the .NET seems to really suck doing things graphically on forms that VB6 Seemed to do fine....
3
2498
by: RickN | last post by:
We have a C# remoting application that runs thru the web. Assemblies appear to be loaded from the download cache. Is there any way to have them automatically copied to the GAC and be loaded from there: for performance reasons and to be applicable machine wide. We'd also like to be able to use an installation package to pre-load all the dll's and don't see how an installation program can pre-loaded them into the download cache. Thanks,...
1
2105
by: Sunny | last post by:
Hi, I am using Databases in my applications, i have a table with an average of 3.5 million records, i am trying to show the search results in a DataGrid from that table, but the results take a very long time to load, it is a very simple search and there are no constraints on the table nor is it a select query from multiple tables. I am using a Datacommand to read data into a DataAdapter and then filling a DataSet which is used to populate a...
6
1795
by: Beren | last post by:
Hi all I'm almost braindead on this one, but how can I create a master/detail datagrid in this format : CatA subcatA1 subcatA2 subcatA3
1
1812
by: Bala | last post by:
Hi, Currently i am loading the file names into datagrid (unbound) from a folder(sub folders too). so for this i am using this below code. but its too slow to loading all the file names. is it any other method to make it fast loading bala code:
6
9233
by: Rob | last post by:
I am trying to copy some data from one datagrid to another. The first datagrid containing data is called DocList. The blank Datagrid that I am trying to copy some data to is called DataGrid1. Please tell me the simplist way to loop through an existing datagrid, access it's columns and rows, then copy parts of that data to a blank Datagrid1. Thank you. What I've tried unsuccessfully:
3
4542
by: natrajsr | last post by:
Hi, I want to load the data of a excel sheet or in the exact excel sheet format into a Rich TextBox control. I have already worked with loading WORD into a Rich TextBox. It is working fine.; But it is taking long time for our need. So we thoguht, we can find another better solution rather than that. Can anyone help me to find out how to load a excel sheet or in the
6
3371
by: rn5a | last post by:
When the EditCommandColumn in a DataGrid is clicked, all the BoundColumns get replaced by TextBoxes so that users can alter the data. By default, the Text in the TextBoxes are left-aligned. Is there any way by which the Text in some of the TextBoxes, not all, be center-aligned or right-aligned? Please note that I am referring to the alignment of the Text in the TextBoxes & NOT the alignment of the TextBoxes within the cells in the...
3
1162
by: cj2 | last post by:
I can't remember and can't find my notes anywhere. There were a couple of commands that when used with I think the data adapter that allowed for faster reading or writing of tables. I think one or both had something to do with turning of the checking VB does to make sure the data doesn't violate any of sql's rules--like a field is blank where sql says it can't be. I think it was two commands both doing something to help speed loading...
0
8984
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8823
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9530
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9238
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8237
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6793
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6073
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4864
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
2206
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.