In one of my recent projects I needed to generate a datatable in C# whose fields could vary depending on which properties of a variable needed to be exported from the system. It needed to be able to generate the SQL CREATE TABLE script on the fly and create the table in the database, and then populate the table with the data to export, either using a SqlBulkCopy object or on a row-by-row basis.
The tutorial below provides a good code base to developing this kind of functionality, as well as providing a link to a similar project on MSDN.
http://darrylagostinelli.com/2011/06/27/create-a-sql-table-from-a-datatable-in-c-net/