Подтвердить что ты не робот

Как преобразовать DataSet в DataTable

Я извлекаю данные из таблицы SQL, поэтому я могу отображать результат на странице в виде таблицы HTML. Позже мне нужно сохранить эту таблицу в виде файла CSV.

До сих пор я выяснил, как извлекать данные и заполнять их в наборе данных для целей отображения (который работает отлично)...

        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);

и как сохранить их в CSV файле с помощью следующего кода: 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();
    }

Теперь моя проблема в том, как мне преобразовать этот DataSet в DataTable? Я пробовал способ, описанный здесь, с НЕТ удачей: http://www.ezineasp.net/post/ASP-Net-C-sharp-Convert-DataSet-to-DataTable.aspx

Может ли кто-нибудь мне помочь? У меня очень мало времени у меня в руке, и мне нужно закончить еще несколько критериев для этого проекта, кроме этой (простой, но запутанной для меня) части. Заранее благодарю за ваше время и помощь!

4b9b3361

Ответ 1

A DataSet уже содержит DataTables. Вы можете просто использовать:

DataTable firstTable = dataSet.Tables[0];

или по имени:

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

Обратите внимание, что для вашего кода SQL должны быть инструкции using, чтобы обеспечить правильное соединение:

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

Ответ 2

DataSet - это набор DataTables.... вы можете получить данные из DataSet, как показано ниже.

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

Ответ 3

Вот мое решение:

DataTable datatable = (DataTable)dataset.datatablename;