protected void ButtonUpload_Click(object sender, EventArgs e) { try { DataTable csvTable, csvColTable; if (FileUploadCSV.HasFile) { // Get the file extension string fileExtension = System.IO.Path.GetExtension(FileUploadCSV.FileName); if (fileExtension.ToLower() != ".csv") { labelMessage.ForeColor = System.Drawing.Color.Red; labelMessage.Text = "Only text file files with .csv extension are allowed"; } else { // Get the file size int fileSize = FileUploadCSV.PostedFile.ContentLength; // If file size is greater than 2 MB if (fileSize > 2097152) { labelMessage.ForeColor = System.Drawing.Color.Red; labelMessage.Text = "File size cannot be greater than 2 MB"; } else { // Upload the file //string fileName = Session["PortfolioFolder"].ToString() + "\\" + textboxPortfolioName.Text + ".xml"; //FileUploadCSV.SaveAs(Server.MapPath("~/Uploads/" + FileUploadCSV.FileName)); ViewState["UploadedFileName"] = Session["PortfolioFolder"].ToString() + "\\" + FileUploadCSV.FileName; FileUploadCSV.SaveAs(Session["PortfolioFolder"].ToString() + "\\" + FileUploadCSV.FileName); labelMessage.ForeColor = System.Drawing.Color.Green; labelMessage.Text = "File uploaded successfully. Please map the fields below to create portfolio."; Stream receiveStream = FileUploadCSV.FileContent; StreamReader reader = null; reader = new StreamReader(receiveStream); //string fileData = reader.ReadToEnd(); //textboxMessage.Text = fileData; csvTable = StockApi.readCSV(reader); if (csvTable != null) { ViewState["CSVData"] = csvTable; ViewState["CSVGridData"] = csvTable; //if(GridViewData.Columns.Count > 0) //{ // GridViewData.Columns.Clear(); //} //foreach (DataColumn col in csvTable.Columns) //{ // BoundField newcol = new BoundField(); // newcol.DataField = col.ColumnName; // newcol.HeaderText = col.ColumnName; // GridViewData.Columns.Add(newcol); //} //GridViewData.DataSource = csvTable; //GridViewData.DataBind(); csvColTable = StockApi.readColumnsFromCSVTable(csvTable); if (csvColTable != null) { ViewState["CSVColData"] = csvColTable; ddlSourceCols.Items.Clear(); foreach (DataRow row in csvColTable.Rows) { ListItem li = new ListItem(row[0].ToString(), row[0].ToString()); ddlSourceCols.Items.Add(li); } GridViewMapping.DataSource = csvColTable; GridViewMapping.DataBind(); } else { labelMessage.ForeColor = System.Drawing.Color.Red; labelMessage.Text = "Problem while mapping source columns. Please select correct CSV file."; buttonMapSelected.Enabled = false; } buttonMapSelected.Enabled = true; } else { labelMessage.ForeColor = System.Drawing.Color.Red; labelMessage.Text = "Problem while reading data. Please select correct CSV file."; buttonMapSelected.Enabled = false; } } } } else { labelMessage.ForeColor = System.Drawing.Color.Red; labelMessage.Text = "Please select a file"; } } catch (Exception ex) { labelMessage.Text = ex.Message; } }