DataSet to Dataview to Dataset to XML!

M

matteoalessio

Hi everybody,
i've a question for this group: i've developed a windows service that
every x minutes count records present in a sql table and if those
records are bigger than a fixed threshold start with clean operations.

Workflow is this:

1) Load records in a DataSet:
DataSet ds = new DataSet();
cmd = "SELECT * FROM " + TableName;
.........
adapter.Fill( ds );

2)Generate a DataView form table inside dataset and order it (i must
order. I tryed to order before load table in DataSet, but table is very
big and often i had timeout)

DataView dv = new DataView(ds.Tables[0]);
string order = GetTimeFieldName ( Table ) + " ASC";
dv.Sort = order;

3) Now i need convert data to XML, but not only one XML file, N XML
file of 10000 records. To do this i generate N DataTable from DataView,
add each DataTable to a New DataSet and call
WriteXML method N time.

The workflow working fine, but i think is not optimal solution (load
dataset, copy to dataview, order dataview, copy again ....... ) ,
someone have a better idea, or some suggestion to gave me?
 
W

W.G. Ryan - MVP

Hi everybody,
i've a question for this group: i've developed a windows service that
every x minutes count records present in a sql table and if those
records are bigger than a fixed threshold start with clean operations.

Workflow is this:

1) Load records in a DataSet:
DataSet ds = new DataSet();
cmd = "SELECT * FROM " + TableName;
........
adapter.Fill( ds );

2)Generate a DataView form table inside dataset and order it (i must
order. I tryed to order before load table in DataSet, but table is very
big and often i had timeout)
--I'm not sure I follow you here. The Timeout is related to the database
right, not the dataset itself?
DataView dv = new DataView(ds.Tables[0]);
string order = GetTimeFieldName ( Table ) + " ASC";
dv.Sort = order;

3) Now i need convert data to XML, but not only one XML file, N XML
file of 10000 records. To do this i generate N DataTable from DataView,
add each DataTable to a New DataSet and call
WriteXML method N time.

The workflow working fine, but i think is not optimal solution (load
dataset, copy to dataview, order dataview, copy again ....... ) ,
someone have a better idea, or some suggestion to gave me?
-- I agree. One solution would be to pull the data from the DB ordered as
you like, but this adds coupling to your business logic that you probably
don't want. In short, i think XSLT is probably a better way to handle this
problem. This way, you can take any given XML file and have it look however
you need it to. You may even be able to use one file and just apply
different translations to it to get whatever output you need. One thing
though, I may not understand all of the nuance here. I see the loading of
the dataset, I see the creation of the View, but where does the copy come n?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top