【发布时间】:2016-10-06 04:47:04
【问题描述】:
我正在尝试将数据库表导出到 csv 文件。但是文件被转换和下载,但是一个单行数据被分成许多行,这会产生问题。以下是我从我正在使用的 aspsn-ps 中找到的代码。我拥有的包含 HTML 标记的记录有什么问题吗?
string constr = ConfigurationManager.ConnectionStrings("conio").ConnectionString;
using (MySqlConnection con = new MySqlConnection(constr)) {
using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM products")) {
using (MySqlDataAdapter sda = new MySqlDataAdapter()) {
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 += Constants.vbCr + Constants.vbLf;
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 += Constants.vbCr + Constants.vbLf;
}
//Download the CSV file.
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=Products.csv");
Response.Charset = "";
Response.ContentType = "application/text";
Response.Output.Write(csv);
Response.Flush();
Response.End();
}
}
}
}
快照
【问题讨论】:
-
正如你所提到的;这是因为 HTML 标签。您将不得不使用文本限定符。说“
-
@Anand 你能发布解决方案吗?谢谢
-
尝试在每个单元格值周围添加双引号。让我知道这是否有帮助
标签: c# asp.net export-to-csv