我正在尝试从C#在dbase IV表上运行查询。我不是所有经验丰富的C#,我已经来到我的智慧结束因为我的select语句失败,因为我试图查询的表包含单引号。
我使用ODBC连接连接到表,该部分工作正常。如果我重命名它并删除引号,我在同一个表上运行查询。
我尝试使用反斜杠转义它,使用2个单引号,并仅对查询进行参数化,以发现这不适用于表名。
命令文本如此,这是问题的根源......
cmd.CommandText = "SELECT * FROM E4X'MAIN";
请帮助我完全陷入困境,并且花了几天寻找解决方案只是为了一次又一次地被挫败......
答案 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\`;
感谢您的帮助,希望这个答案可以帮助其他人坚持使用可怕的命名惯例
里诺