use DataAdpater fill datatable couple times for many columns

  • Thread starter Thread starter Ryan Liu
  • Start date Start date
R

Ryan Liu

Hi,

If I have a very big view in database, it covers 15 tables, each table has
1000 columns.

When I issue select * from view, the database will give error -- too many
columns.

Can I use a DataAdapter fill DataTable couple times? For example, I only
read 5000 columns from the view each time and I read 3 times. It has an id
column as primary key to help locate the row.

How to write a DataAdapter to fill DataTable 3 times? What is the most
efficient way to do this?

Thanks a lot!

~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.

Ryan Liu
Shanghai Fengpu Software Co. Ltd
Shanghai , China

http://www.PowerCATI.com Powerful CATI!
http://www.fpsoft.net.cn
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.
 
Ryan Liu said:
If I have a very big view in database, it covers 15 tables, each table has
1000 columns.

When I issue select * from view, the database will give error -- too many
columns.

Can I use a DataAdapter fill DataTable couple times? For example, I only
read 5000 columns from the view each time and I read 3 times. It has an id
column as primary key to help locate the row.

How to write a DataAdapter to fill DataTable 3 times? What is the most
efficient way to do this?

If you try to use a DataAdapter to fill the table three times, it will
attempt to add additional rows to the DataTable, rather than adding new
columns to the existing rows.
Instead of the DataAdapter, use a DataReader. Loop through the rows
returned by the datareader and add their data into the additional columns in
the datatable. You will have to create the columns beforehand in the table
(you can also do this with a looping construct). These loops take more work
to program than just using a DataAdapter, but they are equally efficient,
since it is what the dataadapter does internally anyway.
 
Alberto Poblacion said:
If you try to use a DataAdapter to fill the table three times, it will
attempt to add additional rows to the DataTable, rather than adding new
columns to the existing rows.
Instead of the DataAdapter, use a DataReader. Loop through the rows
returned by the datareader and add their data into the additional columns
in the datatable. You will have to create the columns beforehand in the
table (you can also do this with a looping construct). These loops take
more work to program than just using a DataAdapter, but they are equally
efficient, since it is what the dataadapter does internally anyway.

Then what about I use a few DataAdapter fill a few DataTalbe and then merge
DataTables?

Thanks!
 
Ryan Liu said:
Then what about I use a few DataAdapter fill a few DataTalbe and then
merge DataTables?

I have not tried it out, but from the documentation of the Merge method
it appears that it may work, as long as you use the overload of Merge that
takes a MissingSchemaAction parameter and you specify the value
MissingSchemaAction.Add.
 
Back
Top