C# 将Datatable转换为Csv在响应中遇到一些问题。End()
我正在尝试将datatable转换为csv格式。代码正在运行,正确获取csv。但问题是在响应后显示catch块时出现了一些异常。End() 这是我的密码C# 将Datatable转换为Csv在响应中遇到一些问题。End(),c#,asp.net,csv,response,C#,Asp.net,Csv,Response,我正在尝试将datatable转换为csv格式。代码正在运行,正确获取csv。但问题是在响应后显示catch块时出现了一些异常。End() 这是我的密码 public void GetCSV(DataTable dt) { StringBuilder sb = new StringBuilder(); IEnumerable<string> columnNames1 = dt.Columns.Cast<DataColumn>().
public void GetCSV(DataTable dt)
{
StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames1 = dt.Columns.Cast<DataColumn>().
Select(column => column.ColumnName);
sb.AppendLine(string.Join(",", columnNames1));
foreach (DataRow row in dt.Rows)
{
IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
foreach (var item in fields)
{
sb.AppendFormat("\"{0}\",", item.Replace("\"", "\"\""));
}
sb = sb.Remove(sb.Length - 1, 1);
sb.Append("\n");
//sb.AppendLine(string.Join(",", fields));
}
string attachment1 = "attachment; filename=Application_Data.csv";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment1);
Response.ContentType = "application/csv;charset=utf-8";
Response.Charset = "utf-8";
Response.Write(sb.ToString());
Response.End();
}
public void GetCSV(数据表dt)
{
StringBuilder sb=新的StringBuilder();
IEnumerable columnNames1=dt.Columns.Cast()。
选择(column=>column.ColumnName);
sb.AppendLine(string.Join(“,”,columnNames1));
foreach(数据行中的数据行)
{
IEnumerable fields=row.ItemArray.Select(field=>field.ToString());
foreach(字段中的变量项)
{
sb.AppendFormat(“\”{0}\”,“,item.Replace(“\”,“\”);
}
sb=sb.移除(sb.长度-1,1);
某人附加(“\n”);
//sb.AppendLine(string.Join(“,”字段));
}
string attachment1=“附件;文件名=应用程序\数据.csv”;
Response.ClearContent();
AddHeader(“内容处置”,附件1);
Response.ContentType=“应用程序/csv;字符集=utf-8”;
响应。Charset=“utf-8”;
写(某人写的东西);
Response.End();
}
我只是调试和检查。然后是响应。结束问题
显示的错误是
无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部
任何人都知道问题所在。提前感谢您的帮助。var lines=new List();
var lines = new List<string>();
string[] columnNames = dataTable.Columns.Cast<datacolumn>().
Select(column => column.ColumnName).
ToArray();
var header = string.Join(",", columnNames);
lines.Add(header);
var valueLines = dt.AsEnumerable()
.Select(row => string.Join(",", row.ItemArray));
lines.AddRange(valueLines );
File.WriteAllLines("excel.csv",lines);</datacolumn></string>
string[]columnNames=dataTable.Columns.Cast()。
选择(column=>column.ColumnName)。
ToArray();
var header=string.Join(“,”列名称);
行。添加(标题);
var valueLines=dt.AsEnumerable()
.Select(row=>string.Join(“,”,row.ItemArray));
行。添加范围(valueLines);
文件.writeAllines(“excel.csv”,行);
试试这个
public void ExportToCSVFile(DataTable dt, string file_name)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition",
"attachment;filename='" + file_name + "'.csv");
Response.Charset = "";
Response.ContentType = "application/text";
StringBuilder sb = new StringBuilder();
for (int k = 0; k < dt.Columns.Count; k++)
{
sb.Append(dt.Columns[k].ColumnName + ',');
}
sb.Append("\r\n");
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int k = 0; k < dt.Columns.Count; k++)
{
sb.Append(dt.Rows[i][k].ToString() + ',');
}
sb.Append("\r\n");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
}
public void ExportToCSVFile(数据表dt,字符串文件\u名称)
{
Response.Clear();
Response.Buffer=true;
Response.AddHeader(“内容处置”,
“附件;文件名=”+“文件名+”.csv”);
响应。Charset=“”;
Response.ContentType=“应用程序/文本”;
StringBuilder sb=新的StringBuilder();
对于(int k=0;k
在此函数中传递datatable和文件名。请尝试签出此函数