【发布时间】:2017-02-06 05:47:32
【问题描述】:
protected void ExportCSV(object sender, EventArgs e)
{
DataTable ds = new DataTable();
ds.Columns.AddRange(new DataColumn[1] { new DataColumn("Name") });
foreach (GridViewRow roww in GridView1.Rows)
{
if (roww.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (roww.Cells[0].FindControl("chkRow") as CheckBox);
if (chkRow.Checked)
{
string name = roww.Cells[1].Text;
string DefaultConnection = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(DefaultConnection))
{
SqlCommand command = new SqlCommand();
using (SqlCommand cmd = new SqlCommand("Select AssignNumber, Stage.StageName,Stage.StationName,AspNetUsers.UserName,RecordedDateTime,StartTime,EndTime,Duration,PauseCount,PauseTotalTime,StageRecord.Count, StageRecord.Notes,Location,VarName,DropOut From TimingProfile Inner Join StudyRecord ON TimingProfile.TimingProfileID = StudyRecord.TimingProfileID Inner Join StageRecord ON StudyRecord.StudyRecordID = StageRecord.StudyRecordID Left Join Stage ON StageRecord.StageID = Stage.StageID Left Join VarAffect ON StageRecord.VarID = VarAffect.VarID Left Join MultiNameValue ON StudyRecord.StudyRecordID = MultiNameValue.StudyRecordID Left Join UserStage ON UserStage.StageID = Stage.StageID Left Join AspNetUsers ON UserStage.UserID = AspNetUsers.Id Where TimingProfile.Name = " + "'"+name+"'"))
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
//Build the CSV file data as a Comma separated string.
string csv = string.Empty;
foreach (DataColumn column
in dt.Columns)
{
//Add the Header row for CSV file.
csv += column.ColumnName + ',';
}
//Add new line.
csv += "\r\n";
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
//Add the Data rows.
csv += row[column.ColumnName].ToString().Replace(",", ";") + ',';
}
//Add new line.
csv += "\r\n";
}
DateTime localdate = DateTime.Now;
//Download the CSV file.
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=MultiStation" + "" + name + " " + localdate + ".csv");
Response.Charset = "";
Response.ContentType = "application/text";
Response.Output.Write(csv);
Response.Flush();
Response.End();
}
}
}
}
}
}
}
当我在 SQL 管理工作室中使用查询时,持续时间显示为:00:32:39,但它在生成的 CSV 中显示为 0.0226736111111111。有没有办法解决这个问题?
【问题讨论】:
-
您是否注意到
0.0226736111111111*24*60等于32.65(或32:39)? -
是的,我很确定这是因为格式已更改,从 MM:SS:MS 更改为十进制值。
-
你能做到
TimeSpan.FromDays(0.0226736111111111).ToString()吗?这给了我"00:32:39"。
标签: c# sql sql-server excel