다음은 CSV 파일을 만든 후 코드입니다. 아래 코드를 사용하기 위해 파일을 다운로드하고 싶습니다. "Response.AddHeader ("Content-disposition ","attachment; filename = "+ fileCSV +"\ ""); "에 서버가 HTTP 헤더를 보낸 후에 헤더를 추가 할 수 없습니다. 같은 페이지로 리디렉션하지HTTP 헤더를 보낸 후에 서버에서 헤더를 추가 할 수 없습니다.
string[] header = { "Error Occurred On", "Controller Name", "Action Name", "Exception Occurred", "Stack Trace Description", "InnerException Occurred", "Stack Trace InnerException Occurred " };
코드 :. 당신은 파일을 다운로드 한 후 리디렉션 할 수 없습니다
DataTable dt = new DataTable();
for (int e = 0; e < header.Length; e++)
{
dt.Columns.Add(header[e], typeof(string));
}
StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
sb.AppendLine(string.Join(",", columnNames));
dt.DefaultView.RowFilter = "[Exception Occurred] LIKE '%" + keyword + "%'";
DataTable dtFilter = new DataTable();
dtFilter = dt.DefaultView.ToTable();
foreach (DataRow row in dtFilter.Rows)
{
IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
sb.AppendLine(string.Join(",", fields));
}
System.IO.File.WriteAllText(fileCSV, sb.ToString());
byte[] bytes = Encoding.ASCII.GetBytes(sb.ToString());
if (bytes != null)
{
Response.Clear();
Response.ContentType = "text/csv";
//Response.AddHeader("Content-Length", bytes.Length.ToString());
Response.AddHeader("Content-disposition", "attachment; filename=" + fileCSV);
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
이 코드 전에 어떤 일이 발생합니까? 그 자체의 오류는 아주 분명합니다. – CodeCaster
이 전에는 데이터 테이블 작성 csv 파일을 사용합니다. datatable에서 csv로 데이터를 추가합니다. –