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$]";
(或用\\
双重转义)