我无法使用C#从ASP.Net中的 DataTable 动态创建CSV文件。
使用sql查询提取的行数为831,但输出无效且网页无响应。
我尝试过在查询中添加LIMIT 10并且下载工作正常。
有什么建议吗?
我的代码如下。
提前感谢您的帮助,非常感谢。
string sqlXls = @String.Format(" SELECT * FROM doTable; ");
using (OdbcConnection con =
new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
{
using (OdbcCommand cmd =
new OdbcCommand(sqlXls, con))
{
try
{
cmd.Connection.Open();
using (OdbcDataAdapter sda =
new OdbcDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt =
new DataTable())
{
sda.Fill(dt);
string csv = string.Empty;
foreach (DataColumn column in dt.Columns)
{
csv += column.ColumnName + ',';
}
csv += "\r\n";
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
csv += row[column.ColumnName].ToString().Replace(",", ";") + ',';
}
csv += "\r\n";
}
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=SqlExport.csv");
Response.Charset = "";
Response.ContentType = "application/text";
Response.Output.Write(csv);
Response.Flush();
Response.End();
}
}
}
catch (Exception ex)
{
throw new ApplicationException("operation failed!", ex);
}
finally
{
cmd.Connection.Close();
}
}
}