我有一个数据表选择,例如:
productData.Select("Name = 'AAA BBB # CCC'");
我知道该条目在那里,它只是因为 # 字符而不起作用。我试过用 [] 转义,比如:
productData.Select("Name = 'AAA BBB [#] CCC'");
但它仍然不起作用。我知道对于单引号,我将它们加倍,所以'变成''。但是我还需要关注哪些其他角色以及如何让这个案例发挥作用。
我有一个数据表选择,例如:
productData.Select("Name = 'AAA BBB # CCC'");
我知道该条目在那里,它只是因为 # 字符而不起作用。我试过用 [] 转义,比如:
productData.Select("Name = 'AAA BBB [#] CCC'");
但它仍然不起作用。我知道对于单引号,我将它们加倍,所以'变成''。但是我还需要关注哪些其他角色以及如何让这个案例发挥作用。
你一定要像这样使用 DataTables 吗?正是出于这个原因,我一直对 DataTable 中基于文本的查询感到非常紧张。
如果可能的话,我建议您开始使用 LINQ。你已经可以做到这一点DataTable
,例如
var query = products.AsEnumerable()
.Where(row => row.Field<string>("Name") == "AAA BBB # CCC");
这样您就不必担心转义等问题。如果您使用强类型数据集,它会变得更加简单,因为您可以直接引用属性而不是使用字符串名称。
你有没有尝试过这样的事情?
productData.Select(@"Name = 'AAA BBB # CCC'");