C# OLEDB命令使用括号';[';';]';在查询中作为表名

C# OLEDB命令使用括号';[';';]';在查询中作为表名,c#,oledb,sql-insert,oledbcommand,C#,Oledb,Sql Insert,Oledbcommand,我有一个Excel文件,其中包含以下列名:name,Display name[de de],Comment[de] 如果我使用此查询,插入[foo$]([Name],[Display Name[de de]],[Comment[de de]],我会得到一个异常: INSERT INTO语句中的语法错误 我必须如何转义括号才能在查询中使用它们 示例代码 var connectionString=$“Provider=Microsoft.ACE.OLEDB.12.0;数据源=\”{Path.Com

我有一个
Excel
文件,其中包含以下列名:
name
Display name[de de]
Comment[de]

如果我使用此查询,
插入[foo$]([Name],[Display Name[de de]],[Comment[de de]]
,我会得到一个
异常:

INSERT INTO语句中的语法错误

我必须如何转义
括号才能在查询中使用它们

示例代码
var connectionString=$“Provider=Microsoft.ACE.OLEDB.12.0;数据源=\”{Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“foo.xlsx”)}\“扩展属性=\”Excel 12.0;HDR=YES;\”;
使用(OLEDB连接连接=新OLEDB连接(连接字符串))
{
conn.Open();
使用(OleDbCommand cmd=new OleDbCommand())
{
尝试
{
cmd.Connection=conn;
cmd.CommandText=@“插入到[Hmi标签$]”([Name],[Display Name[de de]],[Comment[de de]]))
值('foo1','foo2','foo3');”;
cmd.ExecuteNonQuery();
Console.WriteLine(“成功”);
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
}
}
}
Console.ReadKey();
变通办法 到目前为止,唯一有效的解决方案是基于以下答案:

一个选项是完全删除列声明,只需执行
插入..


试试这样的

Insert into [foo$] ('[Name]','[Display name [de-DE]]','[Comment [de-DE]]',

请尝试以下内容:
[Display name[de de]]]
或者:
[Display name[[de de]]]]
很遗憾,这篇文章可能对您有所帮助。@Caramiriel我也尝试过回答,但没有回答success@DominicJonas您可以添加完整的插入查询吗?您使用的是什么?我已经在我的问题中添加了其他信息,包括示例