2

我正在尝试从 C# 对 dbase IV 表运行查询。我对 C# 的经验并不多,而且我已经束手无策了,因为我的 select 语句失败,因为我试图查询的表包含一个单引号。

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

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

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

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

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

4

3 回答 3

2

也许:

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

?

编辑:

我到处寻找我所知道的寻找这个问题的答案,但我什么也没找到。我唯一能说的是,每个人似乎都一致认为这样的表名是个主意。但我猜想,既然您已经花了这么多时间,永久重命名表格对您来说不是一个选择。但如果是这样,我建议你接受它。

于 2011-05-18T21:46:28.363 回答
1

是SQL SERVER吗?甲骨文?

试过了

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

?

于 2011-05-18T21:47:31.850 回答
0

仅供参考,我找到了解决问题的方法。如果我像这样构建我的查询,那么她会工作!

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

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

雷诺

于 2011-05-31T21:01:36.873 回答