Cómo convertir DataSet a DataTable

Estoy recuperando datos de una tabla SQL para poder mostrar el resultado en la página como una tabla HTML. Más tarde necesito poder guardar esa tabla como un archivo CSV.

Hasta ahora he descubierto cómo recuperar los datos y rellenarlos en un conjunto de datos para mostrarlos (lo que funciona perfectamente) …

string selectQuery = "SELECT Name, ProductNumber, ListPrice FROM Poduction.Product"; // Establish the connection to the SQL database SqlConnection conn = ConnectionManager.GetConnection(); conn.Open(); // Connect to the SQL database using the above query to get all the data from table. SqlDataAdapter myCommand = new SqlDataAdapter(selectQuery, conn); // Create and fill a DataSet. DataSet ds = new DataSet(); myCommand.Fill(ds); 

y cómo guardarlos en un archivo CSV con la ayuda del siguiente código de: http://www.evontech.com/login/topic/1983.html

  private void exportDataTableToCsv(DataTable formattedDataTable, string filename) { DataTable toExcel = formattedDataTable.Copy(); HttpContext context = HttpContext.Current; context.Response.Clear(); foreach (DataColumn column in toExcel.Columns) { context.Response.Write(column.ColumnName + ","); } context.Response.Write(Environment.NewLine); foreach (DataRow row in toExcel.Rows) { for (int i = 0; i < toExcel.Columns.Count; i++) { context.Response.Write(row.ToString().Replace(",", string.Empty) + ","); } context.Response.Write(Environment.NewLine); } context.Response.ContentType = "text/csv"; context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + ".csv"); context.Response.End(); } 

Ahora mi problema es cómo convertir este DataSet a DataTable ? He intentado el camino descrito aquí sin NINGUNA suerte: http://www.ezineasp.net/post/ASP-Net-C-sharp-Convert-DataSet-to-DataTable.aspx

¿Alguien puede ayudarme?

Un DataSet ya contiene DataTables . Puedes simplemente usar:

 DataTable firstTable = dataSet.Tables[0]; 

o por nombre:

 DataTable customerTable = dataSet.Tables["Customer"]; 

Tenga en cuenta que debe tener instrucciones de using para su código SQL, para asegurarse de que la conexión se elimine correctamente:

 using (SqlConnection conn = ...) { // Code here... } 

DataSet es una colección de DataTables … puede obtener la datatable de DataSet como se muestra a continuación.

 //here ds is dataset DatTable dt = ds.Table[0]; /// table of dataset 

Aquí está mi solución:

 DataTable datatable = (DataTable)dataset.datatablename;