2013-11-27 35 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