FROM子句读取使用OLEDB数据提供程序在Excel中的Excel文件

如何修改下面的子句以正确读取C#中的Excel工作表?

string queryString = "SELECT * FROM [#Ticker$]"; 

FROM子句中的井号不断转换为临时表“。” 符号,在运行时给我下面的exception。

“.Ticker $”不是一个有效的名字,确保它不包含无效字符或标点符号,而且不会太长。“

我需要它是一个“#”,因为这是在工作表的名称。 我没有控制工作表的命名,所以更改名称不是一个选项。

经过一些反复试验,我发现了这一点。 以下的作品。

 var queryString = "SELECT * FROM ['#Ticker$']"; 

包含文字“#Ticker”似乎可以防止hashtag转换为临时表符号。

更好的方法是使用OLEDB参数

 OleDbCommand cmd= new OleDbCommand("SELECT * FROM @TABLE"); cmd.Parameters.AddWithValue(“@TABLE”, “#Ticker$”); 

有关命令参数的更多信息, 在这里

尝试转义#符号,例如string queryString = "SELECT * FROM [\#Ticker$]"; (或用\\双重转义)