2013-11-27 73 views
0

当我按下按钮id是btnshow时,它没有在gridview中显示上传的excel文件数据,可能会出现什么问题?在gridview中没有显示excel数据

protected void btnupload_Click(object sender, EventArgs e) 
{ 

    if (System.IO.Path.GetExtension(FileUpload1.FileName) == ".xls" || System.IO.Path.GetExtension(FileUpload1.FileName) == ".xlsx") 
    { 
     FileUpload1.SaveAs(Server.MapPath("~/upload/payment.xlsx")); 
     Label1.Text = "File Uploded"; 
    } 

    else 
    { 
     Label1.Text = "Upload only Excel File"; 
    } 

} 

protected void btnshow_Click(object sender, EventArgs e) 
{ 
    string currpath = Server.MapPath("~/upload/payment.xlsx"); 
    string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + currpath + ";Extended Properties=Excel 12.0"; 

    OleDbConnection oledbConn = new OleDbConnection(connString); 
    try 
    { 
     oledbConn.Open(); 
     OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn); 

     OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); 
     objAdapter1.SelectCommand = cmd; 
     DataSet objDataset1 = new DataSet(); 
     objAdapter1.Fill(objDataset1, "ExcelData"); 
     GridView1.DataSource = objDataset1; 
     GridView1.DataBind(); 

    } 
    catch (Exception ex) 
    { 
     Label1.Text = "" + ex; 
    } 
    finally 
    { 
     oledbConn.Close(); 
    } 

`

+1

你有错误? – SLaks

+0

不,没有error.just gridview保持为空 – vikas

回答

0

您需要的数据源设置为一个表,而不是数据集。 编辑:默认情况下,数据源将被设置为表格[0]。所以你的代码应该工作正常。但在标记你应该有AutoGenerateColumns="true"为GridView:

<asp:GridView ID="GridView1" AutoGenerateColumns="true" runat="server"></asp:GridView> 

您可以下载我已经用来测试你的代码here项目。

+0

抱歉忘记写在代码中,但已经这样做,它不工作 – vikas

+0

@ user3027175 - 我编辑了我的答案。 – afzalulh

+0

谢谢工作! – vikas