c#
  • datatable
  • oledb
  • xls
  • 2012-03-29 65 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

    相关问题