2012-08-23 43 views
1

我在包含字符串和数字的Excel文件中有一列。通过反复试验发现,ADO.NET根据前8行单元格的类型推断列的类型。当发生这种情况时,列下的所有字符串都不会被添加到DataTable中。ADO.NET如何强制将Excel列的类型推断为String而不是Double?

我的目标是让ADO.NET以字符串的形式读取该列下的值。

如何做到这一点?

+0

我发现它只采样前8行。 http://support.microsoft.com/kb/281517 – Paparazzi

+0

这一切都取决于注册表设置和IMEX。你需要检查TypeGuessRows。 0(零)表示所有行。 – Fionnuala

+0

查看@ onedaywhen的回答http://www.dotnet247.com/247reference/msgs/37/187667.aspx – Fionnuala

回答

1

附加IMEX = 1至类似于连接字符串:

string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
    "Data Source=" + savePath + 
     "; Extended Properties=" + (char)34 + "Excel 8.0;IMEX=1;" 
     + (char)34; 

的IMEX参数(1是输入模式)迫使列的数据类型为文本,使得字母数字值被正确地处理。

相关问题