3

我正在查询一个 Excel 文件以检索数据记录并将它们显示在监控工具中。问题是,每当我尝试使用以下请求选择具有其 id 的记录时,它在执行查询时会引发错误:

ExecuteCommandTextErrorHandling

告诉我查询中的类型和目标单元格不兼容。

我的请求看起来像

SELECT TOP 20 [Fields...] 
FROM [RECORD$] 
WHERE (([id] = '1'))

id 列可以包含的不仅仅是数字,因此它的单元格类型是标准的默认类型。

我的问题是:如何在不知道其类型的情况下获取记录?

我是否必须强制执行列类型,如果是这样怎么办?我是否必须捕获异常并在没有引号的情况下重试?

这是用于查询 Excel 文件和我的连接字符串的代码

 public static DataTable queryXlsFile(String query, OleDbConnection dbConnection)
 {
        OleDbDataAdapter dbCommand = new OleDbDataAdapter(query, dbConnection);
        DataTable dt = new DataTable();
        dbCommand.Fill(dt);
        return dt;
    }

Provider=Microsoft.ACE.OLEDB.12.0; data source=C:\\test\\321.xls; Extended Properties=\"Excel 8.0;HDR=Yes;\";

提前致谢。

4

2 回答 2

1

尝试添加 IMEX=1;

HDR=是;IMEX=1"

于 2012-04-27T07:54:39.557 回答
1

如果你有很多行,类型是最多的类型,否则类型取决于第一行,一个答案的类型是字符串。

于 2012-04-27T08:55:10.807 回答