asp.net - 如何在 ASP .Net 中创建多个 CSV 文件
问题描述
我想CSV
为每个drop down Selected value
. 即使在调试时我可以注意到 csv 正在附加不同的下拉值,但没有写入另一个 CSV 文件。不知道我为什么以及在哪里做错了。
当我使用块删除时,第二次抛出错误:
The process cannot access the file 'File path' because it is being used by another process.
我相信需要将所有文件存储在服务器上,但同样的问题我已经添加了代码来解决错误但没有改变;
if (File.Exists(filePath))
File.Delete(filePath);
按钮代码
protected void btnGenerate_Click(object sender, EventArgs e)
{
List<int> stopWordArray = new List<int>();
foreach (ListItem listItem in ddlDepot.Items)
{
if (listItem.Selected)
{
string FileType = ddlqoutatfileType.SelectedItem.Text;
DateTime Qotation_Date = Convert.ToDateTime(txtdate.Text).AddDays(3);
var Qotation_Date_modified = Qotation_Date.ToShortDateString();
OracleCommand CmdB = new OracleCommand("Select DEPOT_CODE, PRODUCT_CODE, TO_CHAR(TO_DATE(UPLOAD_DATE,'DD/MM/YYYY'), 'DDMMYYY') as UPLOAD_DATE , TO_CHAR(TO_DATE(SALES_DATE,'DD/MM/YYYY'), 'DDMMYYYY') as SALES_DATE, ORDER_QTY, FILE_TYPE, ROUTE_CODE from SCM_SARAS_ORDERS_vw where File_Type = '" + FileType + "' and DEPOT_CODE =" + listItem.Value + " and SALES_DATE = TO_DATE('" + Qotation_Date_modified + "' , 'DD/MM/YYYY')", con);
CmdB.CommandType = CommandType.Text;
OracleDataAdapter daB = new OracleDataAdapter();
DataTable dtB = new DataTable();
daB.SelectCommand = CmdB;
daB.Fill(dtB);
string csv = string.Empty;
foreach (DataRow row in dtB.Rows)
{
foreach (DataColumn column in dtB.Columns)
{
csv += row[column.ColumnName].ToString().Replace(",", ";") + ',';
}
csv += "\r\n";
}
string fileName = "myfile.csv";
string filePath = Server.MapPath("~/file" + fileName);
using (StreamWriter sw = new StreamWriter(filePath, false))
{
sw.Write(csv);
}
}
}
}
解决方案
我不知道你对跟随问题是什么意思。#但不写入另一个 CSV 文件#
显然,在您的代码中,您在循环中编写了相同的文件;你为什么不把它改成
string fileName = "myfile"+listItem.Value+".csv";//change filename?
string filePath = Server.MapPath("~/file" + fileName);
using (StreamWriter sw = new StreamWriter(filePath, false))
{
sw.Write(csv);
}
推荐阅读
- python - Python IndexError:列表索引超出范围。有人能帮我吗?
- electron - 包括非电子文件夹作为 NSIS 安装的一部分
- wordpress - Woocommerce 产品仅“有货”
- ipad - GWT:文本框在 Ipad 上不显示光标
- java - Java Regex 将连续的单词和数字返回到 arraylist
- python - python中序列中碱基的频率
- python - 如何根据两列过滤时间序列熊猫数据框?
- r - 错误:参数暗示不同的行数:42、15,将数据转换为数据帧
- javascript - 如何使按钮更具反应性
- r - R/dyplr:读取文件夹中的所有 CSV 文件,如果条目不存在则追加到新文件