查询 C# 中表名中的单引号



我正在尝试从 C# 对 dbase IV 表运行查询。我对 C# 并不是那么有经验,我已经走到了尽头,因为我的 select 语句失败了,因为我尝试查询的表包含单引号。

我正在使用 ODBC 连接连接到表,该部分工作正常。如果我重命名它并删除引号,我会对同一个表运行查询。

我尝试使用反斜杠转义它,使用 2 个单引号,并对查询进行参数化,只是发现这不适用于表名。

命令文本就是这样,这是问题的根源......

cmd.CommandText = "SELECT * FROM E4X'MAIN";

请帮助我完全陷入困境,花了几天时间寻找解决方案,只是一次又一次地受挫......

也许:

cmd.CommandText = "SELECT * FROM [E4X'MAIN]";

编辑:

我到处寻找这个问题的答案,但我一无所获。 我唯一能说的是,每个人似乎都一致认为这样的表名是一个主意。但我猜,既然你已经花了很多时间在上面,所以永久重命名表对你来说不是一个选择。但如果以某种方式,我建议你接受它。

它是 SQl 服务器?神谕?

cmd.CommandText = @"SELECT * FROM E4X'MAIN";
cmd.CommandText = @"SELECT * FROM [E4X'MAIN]";

仅供参考,我已经找到了解决问题的方法。如果我像沙赞一样构建我的查询,她就会工作!!

cmd.CommandText = "SELECT * FROM `E4X'MAIN.DBF`;

感谢您的所有帮助,希望这个答案可以帮助其他陷入可怕的命名约定的人

雷诺

最新更新