Sto recuperando i dati da una tabella SQL in modo da poter visualizzare il risultato sulla pagina come tabella HTML. Più tardi ho bisogno di essere in grado di salvare quella tabella come un file CSV.Come convertire DataSet in DataTable
Finora ho capito come recuperare i dati e li compilare un set di dati per scopi di visualizzazione (che è perfettamente funzionante) ...
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);
e come salvarli in un file CSV con l'aiuto di codice seguente da: 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();
}
Ora il mio problema è come faccio a convertire questo DataSet
a DataTable
? Ho cercato il modo qui descritto con NO fortuna: http://www.ezineasp.net/post/ASP-Net-C-sharp-Convert-DataSet-to-DataTable.aspx
Qualcuno mi può aiutare?
Grazie per le risposte veloci! Ho già provato questo: mySqlAdapter.Fill (myDataSet); DataTable myDataTable = myDataSet.Tables [0]; ma il file CSV non sembra corretto in quanto i valori sono mancanti e sostituito con "System.Data.DataRow" .... Nome, ProductNumber, ListPrice, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow , System.Data.DataRow, System.Data.DataRow, come risolvere il problema? – AlwaysANovice
@Walahh: Bene, il tuo codice CSV chiama 'ToString()' su 'DataRow', che mi sembra una cattiva idea. Ti suggerisco di chiederlo come una domanda a parte, poiché in realtà non è la stessa della domanda che hai posto. –
@ JonSkeet - Ricevo un DataSet da SSIS. Eseguo una query del server SQL con connessione ADO.NET. Il set di risultati è memorizzato in un DataSet. C'è un modo per definire il mio set di risultati in modo tale che DataTable abbia anche lo stesso nome? Altrimenti, posso usare l'indice. – Steam