A couple of weeks ago, I complained about the KB code here KB316337. What this code is supposed to do is transform a DataSet into ADO Recordset XML format. I ended up porting the VB code to C# and also rewriting some of the code along the way... It's too much code to show it all here so I've created a web project that you can download which contains the transformation in a utility class.
Using this utility class you can transform a DataSet into different formats, including ADO Recordset XML, Comma Delimited, Tab Delimited and Excel XML. Others have posted about doing the same thing, notably Darrell Norton in a post here. I've boiled it all down in to an easy to use utility class. To use this, simply make the method call like so:
Util.ExportUtils.ExportDataSet(this.exampleDataSet1, "ADOXMLExport", Common.DataSetExportType.ADORecordSet, this.Context);
Notice that the third parameter is an enumeration specifying the export type. This enum looks like this:
public enum DataSetExportType
{
XML,
ExcelXML,
TabDelimited,
CommaDelimited,
ADORecordSet
}
Why would anyone want to go from ADO.NET DataSet to an ADO Recordset? Well, one big reason is to funnel a .NET DataSet's data into an Office Web Component, such as a PivotTable and PivotChart. This can be pretty powerful stuff. The example page included in the project lets you go from a DataGrid bound to a typed dataset, that looks like this:

To a Pivot Chart that looks like this:

Trust me, show this to a client and they'll do backflips with excitement!
If you're intereseted in seeing all of this in action, download and run the project here. Don't open the ASPX page with the designer, because it messes up the <OBJECT> code for the OWCs. Also, to use the OWC, you'll need Office XP and you'll have to trust your local domain from within IE's trusted sites tab. This was (quickly) thrown together for example purposes, so you may have to tweak it for your specific implementation, but it should get you started. Enjoy!
-Brendan