Hi amAturCodr,
I have modified your code. Please refer below. You have not pass the file name. You have to pass the file name to session like below to get the fill file path in other page.
string fpath = Server.MapPath("~/App_data/" + fileName);
HTML
Default.aspx
<div>
<asp:FileUpload ID="excelPath" runat="server" />
<asp:Button Text="Upload" runat="server" OnClick="upFile_Click" />
</div>
Default2.aspx
<div>
<asp:GridView runat="server" ID="ExcelGrid" />
</div>
Code
Default.aspx
protected void upFile_Click(object sender, EventArgs e)
{
if (excelPath.HasFile)
{
string fileName = Path.GetFileName(excelPath.PostedFile.FileName);
string fileExtension = Path.GetExtension(excelPath.PostedFile.FileName);
string fileLocation = Server.MapPath("~/App_Data/" + fileName);
excelPath.SaveAs(fileLocation);
Session["filepath"] = excelPath.PostedFile.FileName;
if (fileExtension.ToLower() == ".xls")
{
string fpath = Server.MapPath("~/App_data/" + fileName);
Session["filepath"] = fpath;
Response.Redirect("Default2.aspx");
}
else if (fileExtension.ToLower() == ".xlsx")
{
string fpath = Server.MapPath("~/App_data/" + fileName);
Session["filepath"] = fpath;
Response.Redirect("Default2.aspx");
}
else
{
string resp = "<script type = 'text/javascript'> var resp = window.alert('Only Excel Files Allowed!'); </script>";
Response.Write(resp);
}
}
else
{
string resp = "<script type = 'text/javascript'> window.alert('Upload an Excel File'); </script>";
Response.Write(resp);
}
}
Default2.aspx
protected void Page_Load(object sender, EventArgs e)
{
if (Session["filepath"] != null)
{
string fpath = Session["filepath"].ToString();
if (fpath.EndsWith("xls"))
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fpath + ";Extended Properties=Excel 8.0;");
con.Open();
DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string getExcelSheetName = dt.Rows[0]["Table_Name"].ToString();
OleDbCommand ExcelCommand = new OleDbCommand(@"SELECT * FROM [" + getExcelSheetName + @"]", con);
OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter(ExcelCommand);
DataSet ExcelDataSet = new DataSet();
ExcelAdapter.Fill(ExcelDataSet);
con.Close();
ExcelGrid.DataSource = ExcelDataSet;
ExcelGrid.DataBind();
}
else if (fpath.EndsWith("xlsx"))
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fpath + ";Extended Properties=Excel 12.0;");
con.Open();
DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string getExcelSheetName = dt.Rows[0]["Table_Name"].ToString();
OleDbCommand ExcelCommand = new OleDbCommand(@"SELECT * FROM [" + getExcelSheetName + @"]", con);
OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter(ExcelCommand);
DataSet ExcelDataSet = new DataSet();
ExcelAdapter.Fill(ExcelDataSet);
con.Close();
ExcelGrid.DataSource = ExcelDataSet;
ExcelGrid.DataBind();
}
}
}
Screenshot
