結果をHTMLテーブルとしてページに表示できるように、SQLテーブルからデータを取得しています。後で、そのテーブルを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
に変換する方法です。私はここで説明されている方法をNO運で試しました: http://www.ezineasp.net/post/ASP-Net -C-sharp-Convert-DataSet-to-DataTable.aspx
誰も私を助けることができますか?
A DataSet
すでに含むDataTables
。あなただけを使用することができます:
DataTable firstTable = dataSet.Tables[0];
または名前で:
DataTable customerTable = dataSet.Tables["Customer"];
接続が適切に破棄されるようにするには、SQLコードにusing
ステートメントが必要であることに注意してください。
using (SqlConnection conn = ...)
{
// Code here...
}
DataSetはDataTablesのコレクションです。以下のように、DataSetからデータテーブルを取得できます。
//here ds is dataset
DatTable dt = ds.Table[0]; /// table of dataset
私の解決策は次のとおりです。
DataTable datatable = (DataTable)dataset.datatablename;