查询中的表名单引号c#

时间:2011-05-18 21:42:25

标签: c# sql escaping dbase

我正在尝试从C#在dbase IV表上运行查询。我不是所有经验丰富的C#,我已经来到我的智慧结束因为我的select语句失败,因为我试图查询的表包含单引号。

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

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

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

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

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

3 个答案:

答案 0 :(得分:2)

也许:

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

修改

我到处寻找我知道寻找这个问题的答案,我什么都没发现。我唯一可以说的是,每个人似乎都一致同意这样的表名是的想法。但我猜测,因为你已经花了这么多时间,所以永久地重命名表不是你的选择。但如果不知怎的话,我建议你接受它。

答案 1 :(得分:1)

是SQl SERVER?甲骨文?

尝试

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

答案 2 :(得分:0)

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

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

感谢您的帮助,希望这个答案可以帮助其他人坚持使用可怕的命名惯例

里诺