c#
  • datatable
  • oledb
  • xls
  • 2012-03-29 66 views 0 likes 
    0

    我想將xls導出到數據表中。以下是我的連接字符串。Excel中的混合數據類型,IMEX不起作用

    string path = //xls source path 
    OleDbConnection MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties='Excel8.0;IMEX=1;TypeGuessRows=0;HDR=No;ImportMixedTypes=Text'"); 
    

    我設置IMEX=1和所有其他的擴展屬性,因爲我必須處理混合數據類型。

    即使我設置了這樣的連接,但我仍然產生錯誤。

    沒有錯誤消息,但不一致的行(誰不遵循大多數數據類型是設置爲null,而不是)。

    有人能告訴我我錯過了什麼?順便說一句,我正在使用OleDbDataAdapter & Fill(DataSet)方法。

    回答

    6

    您確定TypeGuessRows=0;ImportMixedTypes=Text;正在使用連接字符串,並且不應該在註冊表(HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\Jet\4.0\Engines\Excel)中進行修改嗎? AFAIK這個設置是從註冊表中讀取的。通常默認情況下爲ImportMixedTypes=Text,但是TypeGuessRows=8,應該設置爲0,就像在連接字符串中一樣。

    +0

    偉大的答案...... Thx ......任何想法如何發生這樣的事情? – rofans91 2012-03-29 07:28:20

    +0

    「這樣的事情」是什麼意思? – 2012-03-29 07:32:18

    +0

    我的意思是爲什麼即使強硬我明確地在連接字符串中設置TypeGuessRows = 0,我仍然需要手動編輯註冊表? – rofans91 2012-03-29 07:36:41

    相關問題