如何在 ASP .Net 中创建多个 CSV 文件

How to create multiple CSV file in ASP .Net

我想为每个 drop down Selected value 创建多个 CSV 文件。尽管在调试时我可以注意到 csv 正在附加不同的下拉值,但没有写入另一个 CSV 文件。不知道为什么和哪里做错了。

当我删除 using 块时,第二次抛出错误:

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);
}