C# 如何在MySQL文档库中转义字符串查找表达式?

C# 如何在MySQL文档库中转义字符串查找表达式?,c#,mysql,escaping,nosql,C#,Mysql,Escaping,Nosql,我在玩MySQL文档库,我不知道如何正确地转义find语句中带有特殊字符的字符串 Visual C#2015 连接器/网络:8.0.8.0 var realmName = "Aman'Thul"; var realm = collection.Find("Name = :name") .Bind("name", realmName).Limit(1).Execute().FetchOne(); => System.ArgumentException: Unterminated s

我在玩MySQL文档库,我不知道如何正确地转义find语句中带有特殊字符的字符串

Visual C#2015 连接器/网络:8.0.8.0

var realmName = "Aman'Thul";
var realm = collection.Find("Name = :name")
    .Bind("name", realmName).Limit(1).Execute().FetchOne();

=> System.ArgumentException: Unterminated string starting at 4
问题显然是撇号,但同样的结果也会出现其他“特殊字符”,如括号、连字符等

第2版:

第3版:


在这一点上,我没有主意了。正确逃避这些表达的正确方法是什么?必须有一些我似乎找不到的通用解决方案,因为关于MySQL文档存储的信息很少。

正如在评论中所讨论的-您似乎需要自己将单词包装成字符串文字,因为它不会自动完成此操作。但它确实转义了该字符串的内容,因此不需要出于MySQL原因转义任何内容,只需要出于C#原因转义。像这样:

var realmName = "\"Aman'Thul\"";

我只是在猜测,但在文档中,你可以用另一个撇号来避开一个撇号,因此:
my'name
你可以把
my'name
放进去。但是,不同的版本有不同的转义方法,还有您已经尝试过的
\'
选项(虽然只有一个斜杠,而不是两个)。双撇号是我的版本2,不起作用。单反斜杠转义撇号会导致与版本#1相同的错误。这是一件显而易见的事情,但您是否尝试过此页面:但对于您的版本?啊!您是否尝试过:
var realmName=“\”Aman'Thul\”var realmName = "Aman\\'Thul";
var realm = collection.Find("Name = :realmName").Bind("realmName", realmName).Limit(1).Execute().FetchOne();

=> System.ArgumentException: Can't parse at pos: 4
var realmName = "\"Aman'Thul\"";