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

C# 查询c中表名中的单引号,c#,sql,escaping,dbase,C#,Sql,Escaping,Dbase,我正试图从C中对dbase IV表运行查询。我对C没有太多经验,我已经束手无策,因为我的select语句失败了,因为我试图查询的表包含一个引号 我使用ODBC连接连接到表,这部分工作正常。如果重命名同一个表并删除引号,则会在该表上运行查询 我尝试用反斜杠转义它,使用2个单引号,并对查询进行参数化,结果发现这对表名不起作用 命令文本也是如此,这是问题的根源 cmd.CommandText = "SELECT * FROM E4X'MAIN"; 请帮助我,我完全陷入困境,花了好几天时间寻找解决方案

我正试图从C中对dbase IV表运行查询。我对C没有太多经验,我已经束手无策,因为我的select语句失败了,因为我试图查询的表包含一个引号

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

我尝试用反斜杠转义它,使用2个单引号,并对查询进行参数化,结果发现这对表名不起作用

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

cmd.CommandText = "SELECT * FROM E4X'MAIN";
请帮助我,我完全陷入困境,花了好几天时间寻找解决方案,但一次又一次地失败了…

也许:

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

编辑:


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

是SQl SERVER吗?甲骨文

尝试

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

仅供参考,我已经找到了解决问题的方法。如果我像沙扎姆那样构造我的查询,她会工作

cmd.CommandText = "SELECT * FROM \`E4X'MAIN.DBF\`;
谢谢你的帮助,希望这个答案能帮助那些被可怕的命名习惯困扰的人


Reno

尝试以下操作:cmd.CommandText=SELECT*FROM[E4X'MAIN]@svick:通过改进编辑建议,您隐式地批准了编辑,而实际上再次删除了所有内容。我认为只有在您确实同意编辑建议的情况下,您才应该选择该选项。@H.B.,实际上,我拒绝了编辑,发现这意味着我不能直接编辑自己,单击“编辑”关于Oded在历史中的修订版,它做了你可以看到的事情:似乎批准了Ryan的编辑,然后又在我的版本中恢复了它。@svick:那么显然,当我想还有悬而未决的建议时,也不应该编辑旧版本。等待可能有点烦人,但它的存在是有原因的。因为我是一个白痴:修正了。我希望有一秒钟,因为我没有尝试方括号,但仍然没有运气。是的,我知道我正在尝试建立一个翻译器,它将从一个古老的估算软件中提取数据,并将其插入运行MSSQL的更现代的MIS系统中。这是我尝试用C语言编写的第二个项目,它们都遇到了严重的问题,这一个似乎不可能。我真的很感谢你的帮助。。。干杯