2014-06-14 160 views
1

我想從xls格式的文件中將數據保存在sql數據庫中。我嘗試了下面的代碼,但它顯示外部表格未處於預期格式。任何人都可以幫助我如何將數據從xls格式文件保存到數據庫中?如何將excel表格導入到asp.net中的sql數據庫

code: 
protected void Button1_Click(object sender, EventArgs e) 
    { 
     string sheet1 = "asdf"; 
     string path = MapPath("~/dataWorldcup/asdf.xls"); 
     OleDbConnection oconn1 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;"); 
     OleDbCommand ocmd = new OleDbCommand("select * from [" + sheet1 + "$]", oconn1); 
     SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["consed"].ConnectionString); 
     oconn1.Open(); 
     sqlcon.Open(); 
     OleDbDataReader odr = ocmd.ExecuteReader(); 
     SqlBulkCopy sqlBulk = new SqlBulkCopy(sqlcon); 

     sqlBulk.DestinationTableName = "[Table]"; 
     sqlBulk.WriteToServer(odr); 
     sqlcon.Close(); 
     oconn1.Close(); 
    } 

錯誤: enter image description here

數據庫表:

enter image description here

excel文件: - asdf.xls enter image description here

任何人都可以幫我這個它會是什麼?偉大的幫助。

+0

有趣的問題,讓我知道如果我的答案可以幫助你。謝謝 – Mzn

+0

說真的,這根本不是一個重複的問題。對於作爲重複答案給出的答案,正確答案甚至沒有給出確切的答案。看看評論。這個答案可能與連接字符串有關,但很可能它們的連接字符串已經是正確的了(檢查問題!)。該問題似乎與excel中的範圍和sql表之間的模式不匹配有關。大小和模式應該完全匹配,否則會遇到異常。 –

回答

0

我最初的猜測是你沒有使用正確的連接字符串作爲你有的Excel工作表版本。這是我的猜測,因爲除了嘗試連接到工作表之外,發生錯誤時甚至沒有做任何事情。

嘗試搜索正確的連接字符串。

編輯:

試試Excel 8.0;而不是Excel 12.0?

+0

既然是xls,我認爲你的編輯是正確的。 –

相關問題